@@ -173,6 +173,13 @@ type targetDetails struct {
173
173
nodeID string
174
174
}
175
175
176
+ // canNodeReclaimSpace returns true if nodeID is not empty,
177
+ // indicating volume is mounted to a pod and node reclaimspace
178
+ // request can be sent.
179
+ func (td * targetDetails ) canNodeReclaimSpace () bool {
180
+ return td .nodeID != ""
181
+ }
182
+
176
183
// reconcile performs time based validation, fetches required details and makes
177
184
// grpc request for controller and node reclaim space operation.
178
185
func (r * ReclaimSpaceJobReconciler ) reconcile (
@@ -211,15 +218,22 @@ func (r *ReclaimSpaceJobReconciler) reconcile(
211
218
return err
212
219
}
213
220
214
- nodeFound , nodeReclaimedSpace , err := r .nodeReclaimSpace (ctx , logger , target )
215
- if err != nil {
216
- logger .Error (err , "Failed to make node request" )
217
- setFailedCondition (
218
- & rsJob .Status .Conditions ,
219
- fmt .Sprintf ("Failed to make node request: %v" , util .GetErrorMessage (err )),
220
- rsJob .Generation )
221
-
222
- return err
221
+ var (
222
+ nodeFound = false
223
+ nodeReclaimedSpace * int64
224
+ )
225
+ if target .canNodeReclaimSpace () {
226
+ nodeFound = true
227
+ nodeReclaimedSpace , err = r .nodeReclaimSpace (ctx , logger , target )
228
+ if err != nil {
229
+ logger .Error (err , "Failed to make node request" )
230
+ setFailedCondition (
231
+ & rsJob .Status .Conditions ,
232
+ fmt .Sprintf ("Failed to make node request: %v" , util .GetErrorMessage (err )),
233
+ rsJob .Generation )
234
+
235
+ return err
236
+ }
223
237
}
224
238
225
239
controllerFound , controllerReclaimedSpace , err := r .controllerReclaimSpace (ctx , logger , target )
@@ -366,23 +380,21 @@ func (r *ReclaimSpaceJobReconciler) controllerReclaimSpace(
366
380
return true , calculateReclaimedSpace (resp .PreUsage , resp .PostUsage ), nil
367
381
}
368
382
369
- // controllerReclaimSpace makes node reclaim space request if node client is found
383
+ // nodeReclaimSpace makes node reclaim space request if node client is found
370
384
// and returns amount of reclaimed space.
371
385
// This function returns
372
- // - boolean to indicate client was found or not
373
386
// - pointer to int64 indicating amount of reclaimed space, it is nil if not available
374
387
// - error
375
388
func (r * ReclaimSpaceJobReconciler ) nodeReclaimSpace (
376
389
ctx context.Context ,
377
390
logger * logr.Logger ,
378
- target * targetDetails ) (bool , * int64 , error ) {
391
+ target * targetDetails ) (* int64 , error ) {
379
392
clientName , nodeClient := r .getRSClientWithCap (
380
393
target .driverName ,
381
394
target .nodeID ,
382
395
identity .Capability_ReclaimSpace_ONLINE )
383
396
if nodeClient == nil {
384
- logger .Info ("Node Client not found" )
385
- return false , nil , nil
397
+ return nil , errors .New ("node Client not found" )
386
398
}
387
399
* logger = logger .WithValues ("nodeClient" , clientName )
388
400
@@ -394,10 +406,10 @@ func (r *ReclaimSpaceJobReconciler) nodeReclaimSpace(
394
406
defer cancel ()
395
407
resp , err := nodeClient .NodeReclaimSpace (newCtx , req )
396
408
if err != nil {
397
- return true , nil , err
409
+ return nil , err
398
410
}
399
411
400
- return true , calculateReclaimedSpace (resp .PreUsage , resp .PostUsage ), nil
412
+ return calculateReclaimedSpace (resp .PreUsage , resp .PostUsage ), nil
401
413
}
402
414
403
415
// calculateReclaimedSpace returns amount of reclaimed space.
0 commit comments