From e51e9f3ec93b5d170ba2ea3dce39d41a0517e8fe Mon Sep 17 00:00:00 2001 From: Rohan CJ Date: Thu, 14 Nov 2019 13:12:18 +0530 Subject: [PATCH] Ceph: Ensure draining state is set and checked correctly. - Checking whether drain was incorrectly checked precense in map instead of string length. The actual zero value was an empty string. - Unsetting drain did not check if the cluster was clean. Signed-off-by: Rohan CJ --- pkg/operator/ceph/disruption/clusterdisruption/osd.go | 2 +- pkg/operator/ceph/disruption/clusterdisruption/reconcile.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/operator/ceph/disruption/clusterdisruption/osd.go b/pkg/operator/ceph/disruption/clusterdisruption/osd.go index 8591a6838..2b5e105fc 100644 --- a/pkg/operator/ceph/disruption/clusterdisruption/osd.go +++ b/pkg/operator/ceph/disruption/clusterdisruption/osd.go @@ -178,7 +178,7 @@ func (r *ReconcileClusterDisruption) reconcilePDBsForOSDs( if clean { pdbStateMap.Data[disabledPDBKey] = drainingFailureDomains[0] } - } else { + } else if clean { pdbStateMap.Data[disabledPDBKey] = "" } diff --git a/pkg/operator/ceph/disruption/clusterdisruption/reconcile.go b/pkg/operator/ceph/disruption/clusterdisruption/reconcile.go index eba69f3a4..ede02b009 100644 --- a/pkg/operator/ceph/disruption/clusterdisruption/reconcile.go +++ b/pkg/operator/ceph/disruption/clusterdisruption/reconcile.go @@ -183,8 +183,8 @@ func (r *ReconcileClusterDisruption) reconcile(request reconcile.Request) (recon if err != nil { return reconcile.Result{}, err } - _, ok := pdbStateMap.Data[disabledPDBKey] - if ok { + disabledPDB, ok := pdbStateMap.Data[disabledPDBKey] + if ok && len(disabledPDB) > 0 { return reconcile.Result{Requeue: true, RequeueAfter: 30 * time.Second}, nil } return reconcile.Result{}, nil