From 2ba42fbf18ab78c5620a73bcbab94b08b1da5679 Mon Sep 17 00:00:00 2001 From: Humair Khan Date: Tue, 12 Dec 2023 11:35:30 -0500 Subject: [PATCH] fix: propogate external conn errors as string msgs. Signed-off-by: Humair Khan --- controllers/dspipeline_controller.go | 22 ++++++++++++++++------ controllers/storage.go | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/controllers/dspipeline_controller.go b/controllers/dspipeline_controller.go index 38eaad295..a43f1821a 100644 --- a/controllers/dspipeline_controller.go +++ b/controllers/dspipeline_controller.go @@ -225,8 +225,17 @@ func (r *DSPAReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl. } // Get Prereq Status (DB and ObjStore Ready) - dbAvailable, dbAvailableError := r.isDatabaseAccessible(ctx, dspa, params) - objStoreAvailable, objStoreAvailableError := r.isObjectStorageAccessible(ctx, dspa, params) + dbAvailableErrorMsg, objStoreAvailableErrorMsg := "", "" + dbAvailable, err := r.isDatabaseAccessible(ctx, dspa, params) + + if err != nil { + dbAvailableErrorMsg = err.Error() + } + objStoreAvailable, err := r.isObjectStorageAccessible(ctx, dspa, params) + if err != nil { + objStoreAvailableErrorMsg = err.Error() + } + dspaPrereqsReady := dbAvailable && objStoreAvailable if dspaPrereqsReady { @@ -270,7 +279,7 @@ func (r *DSPAReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl. return ctrl.Result{}, err } - conditions, err := r.GenerateStatus(ctx, dspa, params, dbAvailable, objStoreAvailable, dbAvailableError, objStoreAvailableError) + conditions, err := r.GenerateStatus(ctx, dspa, params, dbAvailable, objStoreAvailable, dbAvailableErrorMsg, objStoreAvailableErrorMsg) if err != nil { log.Info(err.Error()) return ctrl.Result{}, err @@ -412,14 +421,15 @@ func (r *DSPAReconciler) handleReadyCondition(ctx context.Context, dspa *dspav1a } func (r *DSPAReconciler) GenerateStatus(ctx context.Context, dspa *dspav1alpha1.DataSciencePipelinesApplication, - params *DSPAParams, dbAvailableStatus bool, objStoreAvailableStatus bool, dbAvailableError error, objStoreAvailableError error) ([]metav1.Condition, error) { + params *DSPAParams, dbAvailableStatus bool, objStoreAvailableStatus bool, dbAvailableErrorMsg string, + objStoreAvailableErrorMsg string) ([]metav1.Condition, error) { // Create Database Availability Condition databaseAvailable := r.buildCondition(config.DatabaseAvailable, dspa, config.DatabaseAvailable) if dbAvailableStatus { databaseAvailable.Status = metav1.ConditionTrue databaseAvailable.Message = "Database connectivity successfully verified" } else { - databaseAvailable.Message = error.Error(dbAvailableError) + databaseAvailable.Message = dbAvailableErrorMsg } // Create Object Storage Availability Condition @@ -428,7 +438,7 @@ func (r *DSPAReconciler) GenerateStatus(ctx context.Context, dspa *dspav1alpha1. objStoreAvailable.Status = metav1.ConditionTrue objStoreAvailable.Message = "Object Store connectivity successfully verified" } else { - objStoreAvailable.Message = error.Error(objStoreAvailableError) + objStoreAvailable.Message = objStoreAvailableErrorMsg } // Create APIServer Readiness Condition diff --git a/controllers/storage.go b/controllers/storage.go index 52844f6d4..1d6510885 100644 --- a/controllers/storage.go +++ b/controllers/storage.go @@ -146,7 +146,7 @@ var ConnectAndQueryObjStore = func(ctx context.Context, log logr.Logger, endpoin // Every other error means the endpoint in inaccessible, or the credentials provided do not have, at a minimum GetObject, permissions errorMessage := fmt.Sprintf("Could not connect to (%s), Error: %s", endpoint, err.Error()) - log.Error(err, errorMessage) + log.Info(errorMessage) return false, errors.New(errorMessage) }