@@ -26,6 +26,7 @@ import (
26
26
"github.com/devtron-labs/devtron/pkg/cluster/rbac"
27
27
"github.com/devtron-labs/devtron/pkg/cluster/read"
28
28
bean3 "github.com/devtron-labs/devtron/pkg/k8s/bean"
29
+ "gopkg.in/go-playground/validator.v9"
29
30
"net/http"
30
31
"strconv"
31
32
@@ -60,6 +61,7 @@ type K8sCapacityRestHandlerImpl struct {
60
61
environmentService environment.EnvironmentService
61
62
clusterRbacService rbac.ClusterRbacService
62
63
clusterReadService read.ClusterReadService
64
+ validator * validator.Validate
63
65
}
64
66
65
67
func NewK8sCapacityRestHandlerImpl (logger * zap.SugaredLogger ,
@@ -68,7 +70,7 @@ func NewK8sCapacityRestHandlerImpl(logger *zap.SugaredLogger,
68
70
clusterService cluster.ClusterService ,
69
71
environmentService environment.EnvironmentService ,
70
72
clusterRbacService rbac.ClusterRbacService ,
71
- clusterReadService read.ClusterReadService ) * K8sCapacityRestHandlerImpl {
73
+ clusterReadService read.ClusterReadService , validator * validator. Validate ) * K8sCapacityRestHandlerImpl {
72
74
return & K8sCapacityRestHandlerImpl {
73
75
logger : logger ,
74
76
k8sCapacityService : k8sCapacityService ,
@@ -78,6 +80,7 @@ func NewK8sCapacityRestHandlerImpl(logger *zap.SugaredLogger,
78
80
environmentService : environmentService ,
79
81
clusterRbacService : clusterRbacService ,
80
82
clusterReadService : clusterReadService ,
83
+ validator : validator ,
81
84
}
82
85
}
83
86
@@ -401,6 +404,15 @@ func (handler *K8sCapacityRestHandlerImpl) DrainNode(w http.ResponseWriter, r *h
401
404
common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
402
405
return
403
406
}
407
+
408
+ // Validate the struct using the validator
409
+ err = handler .validator .Struct (nodeDrainReq )
410
+ if err != nil {
411
+ handler .logger .Errorw ("validation error" , "err" , err , "payload" , nodeDrainReq )
412
+ common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
413
+ return
414
+ }
415
+
404
416
userId , err := handler .userService .GetLoggedInUser (r )
405
417
if userId == 0 || err != nil {
406
418
common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
0 commit comments