Skip to content

Commit 58eca0f

Browse files
committed
Dedicated listNodeSets logic in Deployment controller
This change moves the logic for listing the NodeSets into a dedicated method and removes two unnecessary for loops over the resulting list. Jira: https://issues.redhat.com/browse/OSPRH-14306 Signed-off-by: Brendan Shephard <[email protected]>
1 parent aa79e64 commit 58eca0f

File tree

1 file changed

+41
-38
lines changed

1 file changed

+41
-38
lines changed

controllers/dataplane/openstackdataplanedeployment_controller.go

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -149,44 +149,12 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
149149
}()
150150

151151
// Ensure NodeSets
152-
nodeSets := dataplanev1.OpenStackDataPlaneNodeSetList{}
153-
for _, nodeSet := range instance.Spec.NodeSets {
154-
155-
// Fetch the OpenStackDataPlaneNodeSet instance
156-
nodeSetInstance := &dataplanev1.OpenStackDataPlaneNodeSet{}
157-
err := r.Client.Get(
158-
ctx,
159-
types.NamespacedName{
160-
Namespace: instance.GetNamespace(),
161-
Name: nodeSet,
162-
},
163-
nodeSetInstance)
164-
if err != nil {
165-
// NodeSet not found, force a requeue
166-
if k8s_errors.IsNotFound(err) {
167-
Log.Info("NodeSet not found", "NodeSet", nodeSet)
168-
return ctrl.Result{RequeueAfter: time.Second * time.Duration(instance.Spec.DeploymentRequeueTime)}, nil
169-
}
170-
instance.Status.Conditions.MarkFalse(
171-
dataplanev1.SetupReadyCondition,
172-
condition.ErrorReason,
173-
condition.SeverityError,
174-
dataplanev1.DataPlaneNodeSetErrorMessage,
175-
err.Error())
176-
// Error reading the object - requeue the request.
177-
return ctrl.Result{}, err
178-
}
179-
if err = nodeSetInstance.Spec.ValidateTLS(instance.GetNamespace(), r.Client, ctx); err != nil {
180-
Log.Info("error while comparing TLS settings of nodeset %s with control plane: %w", nodeSet, err)
181-
instance.Status.Conditions.MarkFalse(
182-
dataplanev1.SetupReadyCondition,
183-
condition.ErrorReason,
184-
condition.SeverityError,
185-
dataplanev1.DataPlaneNodeSetErrorMessage,
186-
err.Error())
187-
return ctrl.Result{}, err
152+
nodeSets, err := r.listNodeSets(ctx, &Log, instance)
153+
if err != nil {
154+
if k8s_errors.IsNotFound(err) {
155+
return ctrl.Result{RequeueAfter: time.Second * time.Duration(instance.Spec.DeploymentRequeueTime)}, nil
188156
}
189-
nodeSets.Items = append(nodeSets.Items, *nodeSetInstance)
157+
return ctrl.Result{}, err
190158
}
191159

192160
globalInventorySecrets := map[string]string{}
@@ -384,7 +352,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
384352
if version != nil {
385353
instance.Status.DeployedVersion = version.Spec.TargetVersion
386354
}
387-
err = r.setHashes(ctx, helper, instance, nodeSets)
355+
err = r.setHashes(ctx, helper, instance, *nodeSets)
388356
if err != nil {
389357
Log.Error(err, "Error setting service hashes")
390358
}
@@ -518,3 +486,38 @@ func (r *OpenStackDataPlaneDeploymentReconciler) SetupWithManager(mgr ctrl.Manag
518486
handler.EnqueueRequestsFromMapFunc(certFn)).
519487
Complete(r)
520488
}
489+
490+
func (r *OpenStackDataPlaneDeploymentReconciler) listNodeSets(ctx context.Context, Log *logr.Logger, instance *dataplanev1.OpenStackDataPlaneDeployment) (*dataplanev1.OpenStackDataPlaneNodeSetList, error) {
491+
492+
var nodeSets = dataplanev1.OpenStackDataPlaneNodeSetList{}
493+
var err error
494+
495+
for _, nodeSet := range instance.Spec.NodeSets {
496+
497+
// Fetch the OpenStackDataPlaneNodeSet instance
498+
nodeSetInstance := &dataplanev1.OpenStackDataPlaneNodeSet{}
499+
err := r.Client.Get(
500+
ctx,
501+
types.NamespacedName{
502+
Namespace: instance.GetNamespace(),
503+
Name: nodeSet,
504+
},
505+
nodeSetInstance)
506+
if err != nil {
507+
Log.Info("NodeSet not found", "NodeSet", nodeSet)
508+
return &nodeSets, err
509+
}
510+
if err = nodeSetInstance.Spec.ValidateTLS(instance.GetNamespace(), r.Client, ctx); err != nil {
511+
Log.Info("error while comparing TLS settings of nodeset %s with control plane: %w", nodeSet, err)
512+
instance.Status.Conditions.MarkFalse(
513+
dataplanev1.SetupReadyCondition,
514+
condition.ErrorReason,
515+
condition.SeverityError,
516+
dataplanev1.DataPlaneNodeSetErrorMessage,
517+
err.Error())
518+
return &nodeSets, err
519+
}
520+
nodeSets.Items = append(nodeSets.Items, *nodeSetInstance)
521+
}
522+
return &nodeSets, err
523+
}

0 commit comments

Comments
 (0)