@@ -349,13 +349,21 @@ async def wrapper(**kwargs):
349349@retry_event
350350async def on_openstackcluster_event (
351351 name , namespace , meta , labels , spec , logger , ** kwargs
352+ ):
353+ _on_openstackcluster_event_impl (
354+ name , namespace , meta , labels , spec , logger , ** kwargs
355+ )
356+
357+
358+ async def _on_openstackcluster_event_impl (
359+ name , namespace , meta , labels , spec , logger , ** kwargs
352360):
353361 """
354362 Executes whenever an event occurs for an OpenStack cluster.
355363 """
356364 # Get the resource for manipulating OpenStackClusters at the preferred version
357- capoapi = await ekclient . api_preferred_version ( CAPO_API_GROUP )
358- openstackclusters = await capoapi . resource ( "openstackclusters" )
365+ openstackclusters = await _get_os_cluster_client ( )
366+
359367 # Use the value of the `cluster.x-k8s.io/cluster-name` label as the cluster name if it exists,
360368 # otherwise, fall back to the OpenStackCluster resource name.
361369 clustername = labels .get ("cluster.x-k8s.io/cluster-name" , name )
@@ -376,6 +384,7 @@ async def on_openstackcluster_event(
376384
377385 # If our finalizer is not present, we don't do anything
378386 if FINALIZER not in finalizers :
387+ logger .info ("janitor finalizer not present, skipping cleanup" )
379388 return
380389
381390 # Get the cloud credential from the cluster and use it to delete dangling
@@ -440,3 +449,9 @@ async def on_openstackcluster_event(
440449 openstackclusters , name , namespace , [f for f in finalizers if f != FINALIZER ]
441450 )
442451 logger .info ("removed janitor finalizer from cluster" )
452+
453+
454+ async def _get_os_cluster_client ():
455+ capoapi = await ekclient .api_preferred_version (CAPO_API_GROUP )
456+ openstackclusters = await capoapi .resource ("openstackclusters" )
457+ return openstackclusters
0 commit comments