From 92412fcc8d868e97d36cca40924e4ca551cfd1c2 Mon Sep 17 00:00:00 2001 From: Andrei Matveyeu Date: Mon, 2 Dec 2024 10:56:16 +0100 Subject: [PATCH 1/2] Update environment provider status on errors --- internal/controller/environmentrequest_controller.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/controller/environmentrequest_controller.go b/internal/controller/environmentrequest_controller.go index 5cff0b00..f73a88d4 100644 --- a/internal/controller/environmentrequest_controller.go +++ b/internal/controller/environmentrequest_controller.go @@ -116,19 +116,25 @@ func (r *EnvironmentRequestReconciler) reconcile(ctx context.Context, environmen logger.V(1).Info("environment provider count", "active", len(environmentProviders.activeJobs), "successful", len(environmentProviders.successfulJobs), "failed", len(environmentProviders.failedJobs)) // Check providers availability - // TODO: Update status providers := etosv1alpha1.Providers{ IUT: environmentrequest.Spec.Providers.IUT.ID, ExecutionSpace: environmentrequest.Spec.Providers.ExecutionSpace.ID, LogArea: environmentrequest.Spec.Providers.LogArea.ID, } if err := checkProviders(ctx, r, environmentrequest.Namespace, providers); err != nil { + meta.SetStatusCondition(&environmentrequest.Status.Conditions, metav1.Condition{Status: metav1.ConditionTrue, Type: StatusFailed, Message: "Provider check failed", Reason: err.Error()}) + if _err := r.Status().Update(ctx, environmentrequest); _err != nil { + return _err + } return err } // Reconcile environment provider - // TODO Update status if err := r.reconcileEnvironmentProvider(ctx, environmentProviders, environmentrequest); err != nil { + meta.SetStatusCondition(&environmentrequest.Status.Conditions, metav1.Condition{Status: metav1.ConditionTrue, Type: StatusFailed, Message: "Environment provider reconciliation failed", Reason: err.Error()}) + if _err := r.Status().Update(ctx, environmentrequest); _err != nil { + return _err + } return err } From eb6f692ead8e64299f270b85924668acddc32530 Mon Sep 17 00:00:00 2001 From: Andrei Matveyeu Date: Mon, 2 Dec 2024 12:11:55 +0100 Subject: [PATCH 2/2] code review changes --- .../environmentrequest_controller.go | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/internal/controller/environmentrequest_controller.go b/internal/controller/environmentrequest_controller.go index f73a88d4..d82de2f0 100644 --- a/internal/controller/environmentrequest_controller.go +++ b/internal/controller/environmentrequest_controller.go @@ -122,20 +122,28 @@ func (r *EnvironmentRequestReconciler) reconcile(ctx context.Context, environmen LogArea: environmentrequest.Spec.Providers.LogArea.ID, } if err := checkProviders(ctx, r, environmentrequest.Namespace, providers); err != nil { - meta.SetStatusCondition(&environmentrequest.Status.Conditions, metav1.Condition{Status: metav1.ConditionTrue, Type: StatusFailed, Message: "Provider check failed", Reason: err.Error()}) - if _err := r.Status().Update(ctx, environmentrequest); _err != nil { - return _err - } - return err + meta.SetStatusCondition(&environmentrequest.Status.Conditions, + metav1.Condition{ + Status: metav1.ConditionFalse, + Type: StatusReady, + Message: fmt.Sprintf("Provider check failed: %s", err.Error()), + Reason: "Failed", + }) + logger.Error(err, "Error occurred while checking provider status") + return r.Status().Update(ctx, environmentrequest) } // Reconcile environment provider if err := r.reconcileEnvironmentProvider(ctx, environmentProviders, environmentrequest); err != nil { - meta.SetStatusCondition(&environmentrequest.Status.Conditions, metav1.Condition{Status: metav1.ConditionTrue, Type: StatusFailed, Message: "Environment provider reconciliation failed", Reason: err.Error()}) - if _err := r.Status().Update(ctx, environmentrequest); _err != nil { - return _err - } - return err + meta.SetStatusCondition(&environmentrequest.Status.Conditions, + metav1.Condition{ + Status: metav1.ConditionFalse, + Type: StatusReady, + Message: fmt.Sprintf("Environment provider reconciliation failed: %s", err.Error()), + Reason: "Failed", + }) + logger.Error(err, "Error occurred while reconciling environment provider") + return r.Status().Update(ctx, environmentrequest) } if environmentProviders.failed() {