Skip to content

Commit c9b3f74

Browse files
committed
nrop: controller: add degradeStatusf helper
Instead of forcing the callers to build an error where none is found, add a `degradeStatus` variant which takes a format string. Signed-off-by: Francesco Romani <fromani@redhat.com>
1 parent 7e2965c commit c9b3f74

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

internal/controller/numaresourcesoperator_controller.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,7 @@ func (r *NUMAResourcesOperatorReconciler) Reconcile(ctx context.Context, req ctr
155155
}
156156

157157
if req.Name != objectnames.DefaultNUMAResourcesOperatorCrName {
158-
err := fmt.Errorf("incorrect NUMAResourcesOperator resource name: %s", instance.Name)
159-
return r.degradeStatus(ctx, initialInstance, instance, status.ConditionTypeIncorrectNUMAResourcesOperatorResourceName, err)
158+
return r.degradeStatusf(ctx, initialInstance, instance, status.ConditionTypeIncorrectNUMAResourcesOperatorResourceName, "incorrect NUMAResourcesOperator resource name: %s", instance.Name)
160159
}
161160

162161
if annotations.IsPauseReconciliationEnabled(instance.Annotations) {
@@ -198,19 +197,28 @@ func (r *NUMAResourcesOperatorReconciler) Reconcile(ctx context.Context, req ctr
198197
return step.Result, step.Error
199198
}
200199

200+
func (r *NUMAResourcesOperatorReconciler) degradeStatusf(ctx context.Context, initialInstance, instance *nropv1.NUMAResourcesOperator, reason string, format string, args ...any) (ctrl.Result, error) {
201+
return r.degradeStatusWithInfo(ctx, initialInstance, instance, conditioninfo.ConditionInfo{
202+
Type: status.ConditionDegraded,
203+
Message: fmt.Sprintf(format, args...),
204+
Reason: reason,
205+
})
206+
}
207+
201208
func (r *NUMAResourcesOperatorReconciler) degradeStatus(ctx context.Context, initialInstance, instance *nropv1.NUMAResourcesOperator, reason string, stErr error) (ctrl.Result, error) {
202-
info := conditioninfo.DegradedFromError(stErr)
203-
if reason != "" { // intentionally overwrite
204-
info.Reason = reason
205-
}
209+
return r.degradeStatusWithInfo(ctx, initialInstance, instance, conditioninfo.ConditionInfo{
210+
Type: status.ConditionDegraded,
211+
Message: status.MessageFromError(stErr),
212+
Reason: reason,
213+
})
214+
}
206215

216+
func (r *NUMAResourcesOperatorReconciler) degradeStatusWithInfo(ctx context.Context, initialInstance, instance *nropv1.NUMAResourcesOperator, info conditioninfo.ConditionInfo) (ctrl.Result, error) {
207217
instance.Status.Conditions, _ = status.ComputeConditions(instance.Status.Conditions, info.ToMetav1Condition(instance.Generation), time.Now())
208-
209218
err := r.Client.Status().Patch(ctx, instance, client.MergeFrom(initialInstance))
210219
if err != nil {
211220
klog.InfoS("Failed to update numaresourcesoperator status", "error", err)
212221
}
213-
214222
return ctrl.Result{}, err
215223
}
216224

0 commit comments

Comments
 (0)