in internal/controller/checkpoint_stages.go [115:136]
func HandleMainShuttingDown(r *TeamcityReconciler, ctx context.Context, checkpoint *Checkpoint) (bool, error) {
instance := checkpoint.Instance
mainStatefulSetNamespacedName := instance.Spec.MainNode.GetNamespacedNameFromNamespace(instance.Namespace)
mainNodeUpdateFinished, err := isNodeUpdateFinished(r, ctx, mainStatefulSetNamespacedName)
if err != nil {
return false, err
}
isMainNodeStatefulSetNewestGeneration, err := isNewestGeneration(r, ctx, mainStatefulSetNamespacedName)
if err != nil {
return false, err
}
if mainNodeUpdateFinished && isMainNodeStatefulSetNewestGeneration {
err := checkpoint.DoCheckpointWithDesiredStage(ctx, MainReady)
if err != nil {
return false, err
}
}
return true, nil
}