func doActionBasedOnCheckpointOrRequeue()

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")
	}
}