func()

in cli_tools/common/utils/daisyutils/daisy_worker.go [143:173]


func (w *defaultDaisyWorker) runOnce(wf *daisy.Workflow, vars map[string]string) (retry bool, err error) {
	if err := (&ApplyAndValidateVars{w.env, vars}).PreRunHook(wf); err != nil {
		return false, err
	}
	for _, hook := range w.hooks {
		preHook, isPreHook := hook.(WorkflowPreHook)
		if isPreHook {
			if err := preHook.PreRunHook(wf); err != nil {
				return false, err
			}
		}
	}
	err = RunWorkflowWithCancelSignal(wf, w.cancel)
	if wf.Logger != nil {
		for _, trace := range wf.Logger.ReadSerialPortLogs() {
			w.logger.Trace(trace)
		}
	}
	if err != nil {
		PostProcessDErrorForNetworkFlag(w.env.Tool.HumanReadableName, err, w.env.Network, wf)
		for _, hook := range w.hooks {
			postHook, isPostHook := hook.(WorkflowPostHook)
			if isPostHook {
				wantRetry := false
				wantRetry, err = postHook.PostRunHook(err)
				retry = retry || wantRetry
			}
		}
	}
	return retry, err
}