Skip to content

Commit 69737ee

Browse files
authored
Merge pull request #417 from cnvergence/fix-claimed-check
move claim label check inside func and change AND to OR
2 parents 384e077 + 3ff8394 commit 69737ee

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

pkg/konnector/controllers/cluster/claimedresources/claimedresources_controller.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -212,15 +212,23 @@ type controller struct {
212212
// If consumerSide is true, the check is done for the consumer side (no namespace remapping), and if false, for the provider side object,
213213
// where namespace remapping via APIServiceNamespace is taken into account.
214214
func (c *controller) isClaimed(logger klog.Logger, obj *unstructured.Unstructured, consumerSide bool) bool {
215-
return resources.IsClaimedWithReference(
215+
// If owner label is set - it was claimed before and might not be claimed now (example: reference gone or changed).
216+
// So we need to enqueue it to check if it is still needed.
217+
_, wasClaimedBefore := obj.GetLabels()[kubebindv1alpha2.ObjectOwnerLabel]
218+
219+
currentlyClaimed := resources.IsClaimedWithReference(
216220
logger,
217221
obj,
218222
consumerSide,
219223
c.claim,
220224
c.apiServiceExport,
221225
c.consumerClient,
222-
c.serviceNamespaceInformer.Lister().APIServiceNamespaces(c.providerNamespace),
226+
c.serviceNamespaceInformer.
227+
Lister().
228+
APIServiceNamespaces(c.providerNamespace),
223229
)
230+
231+
return wasClaimedBefore || currentlyClaimed
224232
}
225233

226234
func (c *controller) enqueueConsumer(logger klog.Logger, obj interface{}) {
@@ -234,10 +242,7 @@ func (c *controller) enqueueConsumer(logger klog.Logger, obj interface{}) {
234242
return
235243
}
236244

237-
// If owner label is set - it was claimed before and might not be claimed now (example: reference gone or changed).
238-
// So we need to enqueue it to check if it is still needed.
239-
_, wasClaimedBefore := o.GetLabels()[kubebindv1alpha2.ObjectOwnerLabel]
240-
if !wasClaimedBefore && !c.isClaimed(logger, o, true) {
245+
if !c.isClaimed(logger, o, true) {
241246
return
242247
}
243248
logger.V(2).Info("queueing consumer object", "gvr", o.GroupVersionKind().String(), "key", fmt.Sprintf("%s/%s", o.GetNamespace(), o.GetName()))
@@ -296,10 +301,8 @@ func (c *controller) enqueueProvider(logger klog.Logger, obj interface{}) {
296301
runtime.HandleError(fmt.Errorf("unexpected type %T in enqueueProvider", obj))
297302
return
298303
}
299-
// If owner label is set - it was claimed before and might not be claimed now (example: reference gone or changed).
300-
// So we need to enqueue it to check if it is still needed.
301-
_, wasClaimedBefore := o.GetLabels()[kubebindv1alpha2.ObjectOwnerLabel]
302-
if !wasClaimedBefore && !c.isClaimed(logger, o, false) {
304+
305+
if !c.isClaimed(logger, o, false) {
303306
logger.V(4).Info("object is not claimed, skipping", "object", o.GetObjectKind().GroupVersionKind(), "name", o.GetName())
304307
return
305308
}

0 commit comments

Comments
 (0)