Skip to content

Commit

Permalink
Fix the clusterstatus based on last operatorAction
Browse files Browse the repository at this point in the history
  • Loading branch information
prafull01 committed Nov 5, 2024
1 parent fe6b18c commit 8803436
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions pkg/clusterstatus/clusterstatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,27 @@ func SetClusterStatusOnFirstReconcile(status *api.CrdbClusterStatus) {
status.ClusterStatus = api.ActionStatus(api.Starting).String()
}

// TODO: Do we need to check for all OperatorActions or for just the 0th element in SetClusterStatus func
// nolint
// We need to check for the last element on OperatorActions to determine the state for the cluster status.
func SetClusterStatus(status *api.CrdbClusterStatus) {
InitOperatorActionsIfNeeded(status, metav1.Now())
for _, a := range status.OperatorActions {
if a.Status == api.ActionStatus(api.Failed).String() {
status.ClusterStatus = api.ActionStatus(api.Failed).String()
return
}
lastOperatorActionIndex := len(status.OperatorActions) - 1
if lastOperatorActionIndex < 0 {
status.ClusterStatus = api.ActionStatus(api.Starting).String()
return
}

if a.Status == api.ActionStatus(api.Unknown).String() {
status.ClusterStatus = api.ActionStatus(api.Unknown).String()
return
}
a := status.OperatorActions[lastOperatorActionIndex]
if a.Status == api.ActionStatus(api.Failed).String() {
status.ClusterStatus = api.ActionStatus(api.Failed).String()
return
}

status.ClusterStatus = api.ActionStatus(api.Finished).String()
if a.Status == api.ActionStatus(api.Unknown).String() {
status.ClusterStatus = api.ActionStatus(api.Unknown).String()
return
}

status.ClusterStatus = api.ActionStatus(api.Finished).String()
}

Expand Down

0 comments on commit 8803436

Please sign in to comment.