@@ -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.
214214func (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
226234func (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