@@ -3,6 +3,7 @@ package handler
33import (
44 "database/sql"
55 "errors"
6+ "fmt"
67 "io"
78 "log/slog"
89 "net/http"
@@ -46,15 +47,15 @@ func (s *K8sHandler) RunService(c *gin.Context) {
4647 err := c .BindJSON (& request )
4748 if err != nil {
4849 slog .ErrorContext (c .Request .Context (), "runService get bad request" , slog .Any ("error" , err ), slog .Any ("req" , request ))
49- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
50+ httpbase . BadRequest ( c , err .Error ())
5051 return
5152 }
5253 svcName := s .getServiceNameFromRequest (c )
5354 request .SvcName = svcName
5455 err = s .serviceComponent .RunService (c .Request .Context (), * request )
5556 if err != nil {
56- slog .Error ( "fail to run service" , slog .Any ("error" , err ), slog .Any ("req" , request ))
57- c . JSON ( http . StatusInternalServerError , gin. H { "error" : err . Error ()} )
57+ slog .ErrorContext ( c . Request . Context (), "fail to run service" , slog .Any ("error" , err ), slog .Any ("req" , request ))
58+ httpbase . ServerError ( c , err )
5859 return
5960 }
6061 slog .Info ("service created successfully" , slog .String ("svc_name" , svcName ), slog .Int64 ("deploy_id" , request .DeployID ))
@@ -67,15 +68,15 @@ func (s *K8sHandler) StopService(c *gin.Context) {
6768
6869 if err != nil {
6970 slog .ErrorContext (c .Request .Context (), "stop service get bad request" , slog .Any ("error" , err ), slog .Any ("req" , request ))
70- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
71+ httpbase . BadRequest ( c , err .Error ())
7172 return
7273 }
7374 svcName := s .getServiceNameFromRequest (c )
7475 request .SvcName = svcName
7576 resp , err := s .serviceComponent .StopService (c .Request .Context (), * request )
7677 if err != nil {
7778 slog .ErrorContext (c .Request .Context (), "failed to stop service" , slog .Any ("error" , err ), slog .Any ("req" , request ))
78- c . JSON ( http . StatusInternalServerError , gin. H { "error" : err . Error ()} )
79+ httpbase . ServerError ( c , err )
7980 return
8081 }
8182
@@ -92,15 +93,15 @@ func (s *K8sHandler) UpdateService(c *gin.Context) {
9293
9394 if err != nil {
9495 slog .ErrorContext (c .Request .Context (), "updateService get bad request" , slog .Any ("error" , err ), slog .Any ("req" , request ))
95- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
96+ httpbase . BadRequest ( c , err .Error ())
9697 return
9798 }
9899 svcName := s .getServiceNameFromRequest (c )
99100 request .SvcName = svcName
100101 resp , err := s .serviceComponent .UpdateService (c .Request .Context (), * request )
101102 if err != nil {
102103 slog .ErrorContext (c .Request .Context (), "failed to update service" , slog .Any ("error" , err ), slog .Any ("req" , request ))
103- c . JSON ( http . StatusInternalServerError , gin. H { "error" : err . Error ()} )
104+ httpbase . ServerError ( c , err )
104105 return
105106 }
106107 slog .Info ("service updated" , slog .String ("svc_name" , svcName ))
@@ -114,7 +115,7 @@ func (s *K8sHandler) ServiceStatus(c *gin.Context) {
114115 err := c .BindJSON (request )
115116 if err != nil {
116117 slog .ErrorContext (c .Request .Context (), "serviceStatus get bad request" , slog .Any ("error" , err ), slog .Any ("req" , request ))
117- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
118+ httpbase . BadRequest ( c , err .Error ())
118119 return
119120 }
120121 svcName := s .getServiceNameFromRequest (c )
@@ -128,7 +129,7 @@ func (s *K8sHandler) ServiceStatus(c *gin.Context) {
128129 return
129130 }
130131 slog .ErrorContext (c .Request .Context (), "failed to get service" , slog .Any ("error" , err ), slog .String ("svc_name" , svcName ))
131- c . JSON ( http . StatusInternalServerError , gin. H { "error" : " failed to get service"} )
132+ httpbase . ServerError ( c , fmt . Errorf ( " failed to get service") )
132133 return
133134 }
134135 c .JSON (http .StatusOK , resp )
@@ -140,20 +141,20 @@ func (s *K8sHandler) ServiceLogs(c *gin.Context) {
140141
141142 if err != nil {
142143 slog .ErrorContext (c .Request .Context (), "get bad request" , slog .Any ("error" , err ), slog .Any ("req" , request ))
143- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
144+ httpbase . BadRequest ( c , err .Error ())
144145 return
145146 }
146147 cluster , err := s .clusterPool .GetClusterByID (c , request .ClusterID )
147148 if err != nil {
148149 slog .ErrorContext (c .Request .Context (), "fail to get cluster " , slog .Any ("error" , err ))
149- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
150+ httpbase . BadRequest ( c , err .Error ())
150151 return
151152 }
152153 svcName := s .getServiceNameFromRequest (c )
153154 podNames , err := s .serviceComponent .GetServicePods (c .Request .Context (), cluster , svcName , s .k8sNameSpace , 1 )
154155 if err != nil {
155156 slog .ErrorContext (c .Request .Context (), "failed to read image logs, cannot get pods info" , slog .Any ("error" , err ), slog .String ("svc_name" , svcName ))
156- c . JSON ( http . StatusInternalServerError , gin. H { "error" : " failed to get pods info"} )
157+ httpbase . ServerError ( c , fmt . Errorf ( " failed to get pods info") )
157158 return
158159 }
159160 podName := ""
@@ -169,13 +170,13 @@ func (s *K8sHandler) ServiceLogsByPod(c *gin.Context) {
169170
170171 if err != nil {
171172 slog .ErrorContext (c .Request .Context (), "serviceLogs get bad request" , slog .Any ("error" , err ), slog .Any ("req" , request ))
172- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
173+ httpbase . BadRequest ( c , err .Error ())
173174 return
174175 }
175176 cluster , err := s .clusterPool .GetClusterByID (c , request .ClusterID )
176177 if err != nil {
177178 slog .ErrorContext (c .Request .Context (), "fail to get cluster " , slog .Any ("error" , err ))
178- c . JSON ( http . StatusBadRequest , gin. H { "error" : err .Error ()} )
179+ httpbase . BadRequest ( c , err .Error ())
179180 return
180181 }
181182 svcName := s .getServiceNameFromRequest (c )
@@ -193,7 +194,7 @@ func (s *K8sHandler) getLogsByPod(c *gin.Context, cluster *cluster.Cluster, podN
193194 if err != nil {
194195 slog .ErrorContext (c .Request .Context (), "check pod existence" , slog .Any ("namespace" , s .k8sNameSpace ), slog .Any ("pod-name" , podName ),
195196 slog .Any ("clusterID" , cluster .ID ), slog .Any ("error" , err ))
196- c . JSON ( http . StatusInternalServerError , gin. H { "error" : "Failed to check pod existence"} )
197+ httpbase . ServerError ( c , fmt . Errorf ( "failed to check pod existence") )
197198 return
198199 }
199200 }
@@ -234,7 +235,7 @@ func (s *K8sHandler) readPodLogsFromCluster(c *gin.Context, cluster *cluster.Clu
234235 stream , message , err := rcommon .GetPodLogStream (c .Request .Context (), cluster .Client , podName , s .k8sNameSpace , rTypes .UserContainerName )
235236 if err != nil {
236237 slog .ErrorContext (c .Request .Context (), "Failed to open stream" , slog .Any ("error" , err ))
237- c . JSON ( http . StatusInternalServerError , gin. H { "error" : "Failed to open stream"} )
238+ httpbase . ServerError ( c , fmt . Errorf ( "failed to open stream") )
238239 return
239240 }
240241 defer func () {
@@ -244,12 +245,10 @@ func (s *K8sHandler) readPodLogsFromCluster(c *gin.Context, cluster *cluster.Clu
244245 }()
245246
246247 if message != "" {
247- c . JSON ( http . StatusBadRequest , gin. H { "error" : message } )
248+ httpbase . BadRequest ( c , message )
248249 return
249250 }
250251
251- // TODO miss web socket
252-
253252 setResponseHeaderForLogs (c )
254253
255254 // Flush the header by calling http.Flusher if supported.
@@ -320,20 +319,20 @@ func (s *K8sHandler) GetReplica(c *gin.Context) {
320319 err := c .BindJSON (request )
321320 if err != nil {
322321 slog .ErrorContext (c .Request .Context (), "fail to parse input parameters" , slog .Any ("error" , err ))
323- c . JSON ( http . StatusInternalServerError , gin. H { "error" : " fail to parse input parameters"} )
322+ httpbase . ServerError ( c , fmt . Errorf ( " fail to parse input parameters") )
324323 return
325324 }
326325 svcName := s .getServiceNameFromRequest (c )
327326 svc , err := s .serviceComponent .GetServiceByName (c .Request .Context (), svcName , request .ClusterID )
328327 if err != nil && ! errors .Is (err , sql .ErrNoRows ) {
329328 slog .ErrorContext (c .Request .Context (), "fail to get service" , slog .Any ("error" , err ))
330- c . JSON ( http . StatusInternalServerError , gin. H { "error" : " fail to get service"} )
329+ httpbase . ServerError ( c , fmt . Errorf ( " fail to get service") )
331330 return
332331 }
333332 if svc == nil {
334333 // service not exist
335334 slog .ErrorContext (c .Request .Context (), "service not exist" )
336- c . JSON ( http . StatusNotFound , gin. H { "error" : " service not exist"} )
335+ httpbase . NotFoundError ( c , fmt . Errorf ( " service not exist") )
337336 return
338337 }
339338
@@ -400,7 +399,7 @@ func (s *K8sHandler) GetServiceInfo(c *gin.Context) {
400399 err := c .BindJSON (request )
401400 if err != nil {
402401 slog .ErrorContext (c .Request .Context (), "fail to parse input parameters" , slog .Any ("error" , err ))
403- c . JSON ( http . StatusInternalServerError , gin. H { "error" : " fail to parse input parameters"} )
402+ httpbase . ServerError ( c , fmt . Errorf ( " fail to parse input parameters") )
404403 return
405404 }
406405
@@ -409,7 +408,7 @@ func (s *K8sHandler) GetServiceInfo(c *gin.Context) {
409408 resp , err := s .serviceComponent .GetServiceInfo (c .Request .Context (), * request )
410409 if err != nil {
411410 slog .ErrorContext (c .Request .Context (), "fail to get service info" , slog .Any ("error" , err ))
412- c . JSON ( http . StatusInternalServerError , gin. H { "error" : " fail to get service info"} )
411+ httpbase . ServerError ( c , fmt . Errorf ( " fail to get service info") )
413412 return
414413 }
415414 c .JSON (http .StatusOK , resp )
0 commit comments