@@ -18,7 +18,6 @@ package controller
1818
1919import (
2020 "context"
21- "errors"
2221 "fmt"
2322
2423 corev1 "k8s.io/api/core/v1"
@@ -67,31 +66,31 @@ func (r *StackitMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reque
6766 return ctrl.Result {}, err
6867 }
6968
70- // The owning objects are resolved as far as they still exist. While the
71- // object is being deleted an owner that is simply gone is tolerated, so the
72- // checks that need one sit behind the deletion branch below rather than in
73- // front of it. Every other error still fails, so a transient API problem
74- // cannot be mistaken for a missing owner and drop the finalizer over a
75- // server that is still running.
76- deleting := ! stackitMachine .DeletionTimestamp .IsZero ()
77-
78- machine , ownerErr := clusterutil .GetOwnerMachine (ctx , r .Client , stackitMachine .ObjectMeta )
79- if ownerErr != nil && (! deleting || ! ownerGone (ownerErr )) {
80- return ctrl.Result {}, fmt .Errorf ("get owner machine: %w" , ownerErr )
69+ machine , err := clusterutil .GetOwnerMachine (ctx , r .Client , stackitMachine .ObjectMeta )
70+ if err != nil {
71+ return ctrl.Result {}, fmt .Errorf ("get owner machine: %w" , err )
8172 }
82- var cluster * clusterv1.Cluster
83- if machine != nil {
84- cluster , ownerErr = clusterutil .GetClusterFromMetadata (ctx , r .Client , machine .ObjectMeta )
85- if ownerErr != nil && (! deleting || ! ownerGone (ownerErr )) {
86- return ctrl.Result {}, fmt .Errorf ("get cluster from machine metadata: %w" , ownerErr )
87- }
73+ if machine == nil {
74+ log .Info ("StackitMachine has no owning Machine yet, requeueing" )
75+ return ctrl.Result {}, nil
8876 }
89- var stackitCluster * infrav1.StackitCluster
90- if cluster != nil {
91- stackitCluster , err = r .getStackitCluster (ctx , cluster )
92- if err != nil {
93- return ctrl.Result {}, err
94- }
77+
78+ cluster , err := clusterutil .GetClusterFromMetadata (ctx , r .Client , machine .ObjectMeta )
79+ if err != nil {
80+ return ctrl.Result {}, fmt .Errorf ("get cluster from machine metadata: %w" , err )
81+ }
82+ if cluster == nil {
83+ log .Info ("Machine has no owning Cluster yet, requeueing" )
84+ return ctrl.Result {}, nil
85+ }
86+
87+ stackitCluster , err := r .getStackitCluster (ctx , cluster )
88+ if err != nil {
89+ return ctrl.Result {}, err
90+ }
91+ if stackitCluster == nil {
92+ log .Info ("StackitCluster not found, requeueing" )
93+ return ctrl.Result {}, nil
9594 }
9695
9796 machineScope , err := scope .NewMachineScope (r .Client , cluster , machine , stackitCluster , stackitMachine )
@@ -113,29 +112,9 @@ func (r *StackitMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reque
113112 if ! stackitMachine .DeletionTimestamp .IsZero () {
114113 return ctrl.Result {}, r .reconcileDelete (ctx , machineScope )
115114 }
116-
117- switch {
118- case machine == nil :
119- log .Info ("StackitMachine has no owning Machine yet, waiting" )
120- return ctrl.Result {}, nil
121- case cluster == nil :
122- log .Info ("Machine has no owning Cluster yet, waiting" )
123- return ctrl.Result {}, nil
124- case stackitCluster == nil :
125- log .Info ("StackitCluster not found, waiting" )
126- return ctrl.Result {}, nil
127- }
128115 return r .reconcileNormal (ctx , machineScope )
129116}
130117
131- // ownerGone reports whether err means the owning object no longer exists, as
132- // opposed to not being readable right now. GetOwnerMachine and GetOwnerCluster
133- // surface a plain NotFound; GetClusterFromMetadata reports ErrNoCluster when the
134- // Machine has lost the label naming its Cluster.
135- func ownerGone (err error ) bool {
136- return apierrors .IsNotFound (err ) || errors .Is (err , clusterutil .ErrNoCluster )
137- }
138-
139118// SetupWithManager registers the controller with the manager.
140119func (r * StackitMachineReconciler ) SetupWithManager (mgr ctrl.Manager ) error {
141120 return ctrl .NewControllerManagedBy (mgr ).
0 commit comments