@@ -190,11 +190,15 @@ func (h ClusterNodePoolsHandler) Patch(w http.ResponseWriter, r *http.Request) {
190190 clusterID := mux .Vars (r )["id" ]
191191 nodePoolID := mux .Vars (r )["nodepool_id" ]
192192
193- _ , err := h .clusterService .Get (ctx , clusterID )
193+ cluster , err := h .clusterService .Get (ctx , clusterID )
194194 if err != nil {
195195 return nil , err
196196 }
197197
198+ if cluster .DeletedTime != nil {
199+ return nil , errors .ConflictState ("Cluster '%s' is marked for deletion" , clusterID )
200+ }
201+
198202 found , err := h .nodePoolService .Get (ctx , nodePoolID )
199203 if err != nil {
200204 return nil , err
@@ -204,6 +208,10 @@ func (h ClusterNodePoolsHandler) Patch(w http.ResponseWriter, r *http.Request) {
204208 return nil , errors .NotFound ("NodePool '%s' not found for cluster '%s'" , nodePoolID , clusterID )
205209 }
206210
211+ if found .DeletedTime != nil {
212+ return nil , errors .ConflictState ("NodePool '%s' is marked for deletion" , nodePoolID )
213+ }
214+
207215 if patch .Spec != nil {
208216 specJSON , jsonErr := json .Marshal (* patch .Spec )
209217 if jsonErr != nil {
@@ -258,6 +266,10 @@ func (h ClusterNodePoolsHandler) Create(w http.ResponseWriter, r *http.Request)
258266 return nil , err
259267 }
260268
269+ if cluster .DeletedTime != nil {
270+ return nil , errors .ConflictState ("Cluster '%s' is marked for deletion" , clusterID )
271+ }
272+
261273 // Use the presenters.ConvertNodePool helper to convert the request
262274 nodePoolModel , convErr := presenters .ConvertNodePool (& req , cluster .ID , "system@hyperfleet.local" )
263275 if convErr != nil {
0 commit comments