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
}