@@ -97,15 +97,7 @@ func (r *ClusterReconciler) handleDelete(ctx context.Context, cluster *clustersv
9797 cluster .Status .Phase = commonapi .StatusPhaseTerminating
9898
9999 // check if there are any foreign finalizers on the Cluster resource
100- foreignFinalizers := make ([]string , 0 , len (cluster .Finalizers ))
101- found := false
102- for _ , fin := range cluster .Finalizers {
103- if fin != Finalizer {
104- foreignFinalizers = append (foreignFinalizers , fin )
105- } else {
106- found = true
107- }
108- }
100+ foreignFinalizers , found := identifyFinalizers (cluster )
109101 if ! found {
110102 // Nothing to do
111103 return ctrl.Result {}, nil
@@ -260,3 +252,19 @@ func isClusterProviderResponsible(cluster *clustersv1alpha1.Cluster) bool {
260252func runsOnLocalHost () bool {
261253 return os .Getenv ("KIND_ON_LOCAL_HOST" ) == "true"
262254}
255+
256+ // identifyFinalizers checks two things for the given object:
257+ // 1. If the 'clusters.openmcp.cloud/finalizer' finalizer is present (second return value).
258+ // 2. Which other finalizers are present (first return value).
259+ func identifyFinalizers (obj client.Object ) ([]string , bool ) {
260+ foreignFinalizers := make ([]string , 0 , len (obj .GetFinalizers ()))
261+ found := false
262+ for _ , fin := range obj .GetFinalizers () {
263+ if fin != Finalizer {
264+ foreignFinalizers = append (foreignFinalizers , fin )
265+ } else {
266+ found = true
267+ }
268+ }
269+ return foreignFinalizers , found
270+ }
0 commit comments