in internal/handler/appdeployment.go [214:233]
func (a *AppDeploymentHandler) EnsureTeardownFinished(ctx context.Context) (reconciler.OperationResult, error) {
a.logger.V(1).Info("Operation EnsureTeardownFinished")
if !a.phaseIs(v1alpha1.AppDeploymentPhaseDeleting) {
return reconciler.ContinueProcessing()
}
teardownJob := ctrlutils.TeardownJobFromAppDeploymentSpec(a.appDeployment)
err := a.initializeJobAndAwaitCompletion(ctx, teardownJob)
switch err {
case nil:
// teardown job is succeeded move the appdeployment to deleted phase
a.appDeployment.Status.Phase = v1alpha1.AppDeploymentPhaseDeleted
return reconciler.RequeueOnErrorOrContinue(a.client.Status().Update(ctx, a.appDeployment))
case errJobNotCompleted:
a.logger.V(1).WithValues(log.AppDeploymentJobName, teardownJob.Name).Info("teardown job is not completed yet")
return reconciler.Requeue()
default:
a.logger.WithValues(log.AppDeploymentJobName, teardownJob.Name).Error(err, "teardown job failed %s")
return reconciler.RequeueWithError(err)
}
}