in internal/controller/checkpoint_stages.go [14:63]
func doActionBasedOnCheckpointOrRequeue(r *TeamcityReconciler, ctx context.Context, checkpoint *Checkpoint) (bool, error) {
log := log.FromContext(ctx)
log.V(1).Info("Current update stage is " + checkpoint.CurrentStage.String())
switch checkpoint.CurrentStage {
case UpdateInitiated:
result, err := HandleUpdateInitiated(ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
case ReplicaCreated:
result, err := HandleReplicaCreated(r, ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
case ReplicaStarting:
result, err := HandleReplicaStarting(r, ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
case ReplicaReady:
result, err := HandleReplicaReady(ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
case MainShuttingDown:
result, err := HandleMainShuttingDown(r, ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
case MainReady:
result, err := HandleMainReady(r, ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
case UpdateFinished:
result, err := HandleUpdateFinished(ctx, checkpoint)
if err != nil {
return false, err
}
return result, nil
default:
panic("unhandled default case")
}
}