Skip to content

Commit c3239d5

Browse files
committed
Refactor Get method in subResourceClient to improve error handling and simplify logic
1 parent feb16b1 commit c3239d5

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

pkg/multicluster/client.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -501,20 +501,10 @@ func (c *subResourceClient) Get(ctx context.Context, obj, subResource client.Obj
501501
if err != nil {
502502
return err
503503
}
504-
var lastErr error
504+
505505
found := false
506506
for _, cl := range clusters {
507-
if !found {
508-
err := cl.GetClient().SubResource(c.subResource).Get(ctx, obj, subResource, opts...)
509-
if err == nil {
510-
found = true
511-
continue
512-
}
513-
if !apierrors.IsNotFound(err) {
514-
return err
515-
}
516-
lastErr = err
517-
} else {
507+
if found {
518508
candidateObj := obj.DeepCopyObject().(client.Object)
519509
candidateSub := subResource.DeepCopyObject().(client.Object)
520510
err := cl.GetClient().SubResource(c.subResource).Get(ctx, candidateObj, candidateSub, opts...)
@@ -524,10 +514,20 @@ func (c *subResourceClient) Get(ctx context.Context, obj, subResource client.Obj
524514
if !apierrors.IsNotFound(err) {
525515
return err
526516
}
517+
continue
518+
}
519+
520+
err := cl.GetClient().SubResource(c.subResource).Get(ctx, obj, subResource, opts...)
521+
if err == nil {
522+
found = true
523+
continue
524+
}
525+
if !apierrors.IsNotFound(err) {
526+
return err
527527
}
528528
}
529529
if !found {
530-
return lastErr
530+
return apierrors.NewNotFound(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, obj.GetName())
531531
}
532532
return nil
533533
}

0 commit comments

Comments
 (0)