Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
This commit is contained in:
FogDong
2022-05-27 18:40:09 +08:00
parent 8a1b499f24
commit 784e5f5db3
3 changed files with 7 additions and 11 deletions
@@ -241,9 +241,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu
if err := r.doWorkflowFinish(app, wf); err != nil {
return r.endWithNegativeCondition(ctx, app, condition.ErrorCondition(common.WorkflowCondition.String(), errors.WithMessage(err, "DoWorkflowFinish")), common.ApplicationRunningWorkflow)
}
if !workflow.IsFailedAfterRetry(app) {
r.stateKeep(logCtx, handler, app)
}
return r.gcResourceTrackers(logCtx, handler, common.ApplicationWorkflowTerminated, false, true)
case common.WorkflowStateExecuting:
logCtx.Info("Workflow return state=Executing")
+1 -1
View File
@@ -480,7 +480,7 @@ func SkipTaskRunner(options *SkipOptions) bool {
case "":
return options.DependsOnPhase != common.WorkflowStepPhaseSucceeded
default:
// TODO:(fog) support cue syntax in if
// TODO:(fog) support more if cases
return false
}
}
+6 -7
View File
@@ -119,7 +119,7 @@ func (w *workflow) ExecuteSteps(ctx monitorContext.Context, appRev *oamcore.Appl
StepStatusCache.Delete(cacheKey)
return common.WorkflowStateFinished, nil
}
if (wfStatus.Terminated && allTasksDone) || (wfStatus.Terminated && wfStatus.Suspend) {
if checkWorkflowTerminated(wfStatus, allTasksDone) {
return common.WorkflowStateTerminated, nil
}
if wfStatus.Suspend {
@@ -155,20 +155,15 @@ func (w *workflow) ExecuteSteps(ctx monitorContext.Context, appRev *oamcore.Appl
}
e.checkWorkflowStatusMessage(wfStatus)
fmt.Println(99999, e.status.Message)
StepStatusCache.Store(cacheKey, len(wfStatus.Steps))
allTasksDone, allTasksSucceeded = w.allDone(taskRunners)
if wfStatus.Terminated {
e.cleanBackoffTimesForTerminated()
if allTasksDone || wfStatus.Suspend {
if checkWorkflowTerminated(wfStatus, allTasksDone) {
wfContext.CleanupMemoryStore(e.app.Name, e.app.Namespace)
return common.WorkflowStateTerminated, nil
}
}
if (wfStatus.Terminated && allTasksDone) || (wfStatus.Terminated && wfStatus.Suspend) {
wfContext.CleanupMemoryStore(e.app.Name, e.app.Namespace)
return common.WorkflowStateTerminated, nil
}
if wfStatus.Suspend {
wfContext.CleanupMemoryStore(e.app.Name, e.app.Namespace)
return common.WorkflowStateSuspended, nil
@@ -181,6 +176,10 @@ func (w *workflow) ExecuteSteps(ctx monitorContext.Context, appRev *oamcore.Appl
return common.WorkflowStateExecuting, nil
}
func checkWorkflowTerminated(wfStatus *common.WorkflowStatus, allTasksDone bool) bool {
return (wfStatus.Terminated && allTasksDone) || (wfStatus.Terminated && wfStatus.Suspend)
}
func (w *workflow) restartWorkflow(ctx monitorContext.Context, revAndSpecHash string) (common.WorkflowState, error) {
ctx.Info("Restart Workflow")
status := w.app.Status.Workflow