From b2bbedaddad4bd2f6ad54b997721560f7cb6e272 Mon Sep 17 00:00:00 2001 From: r Date: Fri, 14 Oct 2022 02:04:57 +0300 Subject: [PATCH] add_service_db_finalizer_deletion in ReconcileDelete Depends-On: libcommon #54 https://github.com/openstack-k8s-operators/lib-common/pull/54 --- controllers/cinderapi_controller.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/controllers/cinderapi_controller.go b/controllers/cinderapi_controller.go index 08593f2d..0fe2fead 100644 --- a/controllers/cinderapi_controller.go +++ b/controllers/cinderapi_controller.go @@ -50,6 +50,8 @@ import ( "github.com/openstack-k8s-operators/lib-common/modules/common/labels" "github.com/openstack-k8s-operators/lib-common/modules/common/secret" "github.com/openstack-k8s-operators/lib-common/modules/common/util" + + database "github.com/openstack-k8s-operators/lib-common/modules/database" ) // GetClient - @@ -253,6 +255,19 @@ func (r *CinderAPIReconciler) SetupWithManager(mgr ctrl.Manager) error { func (r *CinderAPIReconciler) reconcileDelete(ctx context.Context, instance *cinderv1beta1.CinderAPI, helper *helper.Helper) (ctrl.Result, error) { r.Log.Info(fmt.Sprintf("Reconciling Service '%s' delete", instance.Name)) + // remove db finalizer + serviceDb, err := database.GetServiceDbByName(ctx, helper, instance.Name, instance.Namespace) + if err != nil && !k8s_errors.IsNotFound(err) { + return ctrl.Result{}, err + } + if err == nil { + controllerutil.RemoveFinalizer(serviceDb, helper.GetFinalizer()) + if err = helper.GetClient().Update(ctx, serviceDb); err != nil && !k8s_errors.IsNotFound(err) { + return ctrl.Result{}, err + } + util.LogForObject(helper, "Removed finalizer from our CinderAPI database", instance) + } + // It's possible to get here before the endpoints have been set in the status, so check for this if instance.Status.APIEndpoints != nil { for _, ksSvc := range keystoneServices {