Skip to content

Commit

Permalink
Put getMachine() into a name method
Browse files Browse the repository at this point in the history
Putting it into the manager does not make sense,
because its result is needed to initializing the
manager.

Signed-off-by: Marc Sluiter <msluiter@redhat.com>
  • Loading branch information
slintes committed Feb 8, 2023
1 parent 6cfe843 commit 47fbab9
Showing 1 changed file with 25 additions and 28 deletions.
53 changes: 25 additions & 28 deletions pkg/controller/metal3remediation/metal3remediation_controller.go
Expand Up @@ -88,34 +88,7 @@ func (r *Metal3RemediationReconciler) Reconcile(ctx context.Context, req ctrl.Re
}
}()

// Fetch the Machine.
// TODO refactor, put this into manager?
getMachine := func() (*machinev1beta1.Machine, error) {
machine := &machinev1beta1.Machine{}

// try to get the machine via owner ref
for _, ownerRef := range metal3Remediation.OwnerReferences {
if ownerRef.Kind == "Machine" {
machineKey := client.ObjectKey{
Name: ownerRef.Name,
Namespace: metal3Remediation.Namespace,
}
err := r.Client.Get(context.Background(), machineKey, machine)
if err == nil {
return machine, nil
} else if !apierrors.IsNotFound(err) {
remediationLog.Error(err, "failed to get machine from remediation CR owner ref",
"machine name", machineKey.Name, "namespace", machineKey.Namespace)
return nil, err
}
}
}
err := fmt.Errorf("no owner ref with kind Machine found")
remediationLog.Error(err, "")
return nil, err
}

ocpMachine, err := getMachine()
ocpMachine, err := r.getMachine(remediationLog, metal3Remediation)
if err != nil {
return ctrl.Result{}, err
}
Expand Down Expand Up @@ -361,6 +334,30 @@ func (r *Metal3RemediationReconciler) remediateRebootStrategy(ctx context.Contex
return ctrl.Result{RequeueAfter: 5 * time.Second}, nil
}

func (r *Metal3RemediationReconciler) getMachine(remediationLog logr.Logger, metal3Remediation *infrav1.Metal3Remediation) (*machinev1beta1.Machine, error) {
// try to get the machine via owner ref
for _, ownerRef := range metal3Remediation.OwnerReferences {
if ownerRef.Kind == "Machine" {
machineKey := client.ObjectKey{
Name: ownerRef.Name,
Namespace: metal3Remediation.Namespace,
}
machine := &machinev1beta1.Machine{}
err := r.Client.Get(context.Background(), machineKey, machine)
if err == nil {
return machine, nil
} else if !apierrors.IsNotFound(err) {
remediationLog.Error(err, "failed to get machine from remediation CR owner ref",
"machine name", machineKey.Name, "namespace", machineKey.Namespace)
return nil, err
}
}
}
err := fmt.Errorf("no owner ref with kind Machine found")
remediationLog.Error(err, "")
return nil, err
}

// Returns whether annotations or labels were set / updated.
func (r *Metal3RemediationReconciler) backupNode(remediationMgr baremetal.RemediationManagerInterface,
node *corev1.Node) bool {
Expand Down

0 comments on commit 47fbab9

Please sign in to comment.