From 00d71c6a242cb909c16c5513fe802b14cfaad3bc Mon Sep 17 00:00:00 2001 From: Dov Alperin Date: Fri, 7 Apr 2023 16:55:30 -0400 Subject: [PATCH] Give keepers a chance to become healthy by retrying finding elligible keepers in failover --- pkg/commands/admin.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/commands/admin.go b/pkg/commands/admin.go index 33c850d..5ea5014 100644 --- a/pkg/commands/admin.go +++ b/pkg/commands/admin.go @@ -35,11 +35,19 @@ func handleFailoverTrigger(w http.ResponseWriter, r *http.Request) { currentMasterUID := masterKeeperUID(data) // Discover keepers that are eligible for promotion. + retries := 5 + eligibleCount := 0 - for _, keeper := range data.Keepers { - if keeper.Status.Healthy && keeper.Status.CanBeMaster && keeper.UID != currentMasterUID { - fmt.Printf("Keeper %s is eligible! Master is %s\n", keeper.UID, currentMasterUID) - eligibleCount++ + for retries > 0 { + for _, keeper := range data.Keepers { + if keeper.Status.Healthy && keeper.Status.CanBeMaster && keeper.UID != currentMasterUID { + fmt.Printf("Keeper %s is eligible! Master is %s\n", keeper.UID, currentMasterUID) + eligibleCount++ + } + } + if eligibleCount == 0 { + time.Sleep(10 * time.Second) + retries = retries - 1 } }