forked from tangled.org/core
this repo has no description

spindle/{db,engine}: emit StatusTimeout events

Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>

anirudh.fi 6d10fb1c fa3beeb9

verified
Changed files
+28 -7
spindle
+4
spindle/db/events.go
··· 135 135 func (d *DB) StatusSuccess(workflowId models.WorkflowId, n *notifier.Notifier) error { 136 136 return d.createStatusEvent(workflowId, models.StatusKindSuccess, nil, nil, n) 137 137 } 138 + 139 + func (d *DB) StatusTimeout(workflowId models.WorkflowId, n *notifier.Notifier) error { 140 + return d.createStatusEvent(workflowId, models.StatusKindTimeout, nil, nil, n) 141 + }
+15 -7
spindle/engine/engine.go
··· 104 104 105 105 err = e.StartSteps(ctx, w.Steps, wid, w.Image) 106 106 if err != nil { 107 - e.l.Error("workflow failed!", "wid", wid.String(), "error", err.Error()) 108 - 109 - dbErr := e.db.StatusFailed(wid, err.Error(), -1, e.n) 110 - if dbErr != nil { 111 - return dbErr 107 + if errors.Is(err, ErrTimedOut) { 108 + dbErr := e.db.StatusTimeout(wid, e.n) 109 + if dbErr != nil { 110 + return dbErr 111 + } 112 + } else { 113 + dbErr := e.db.StatusFailed(wid, err.Error(), -1, e.n) 114 + if dbErr != nil { 115 + return dbErr 116 + } 112 117 } 113 118 114 119 return fmt.Errorf("starting steps image: %w", err) ··· 245 250 <-tailDone 246 251 247 252 stepCancel() 248 - return fmt.Errorf("step timed out after %v", stepTimeout) 253 + return ErrTimedOut 249 254 } 250 255 251 256 if waitErr != nil { ··· 259 264 260 265 if state.ExitCode != 0 { 261 266 e.l.Error("workflow failed!", "workflow_id", wid.String(), "error", state.Error, "exit_code", state.ExitCode, "oom_killed", state.OOMKilled) 262 - return fmt.Errorf("error: %s, exit code: %d, oom: %t", state.Error, state.ExitCode, state.OOMKilled) 267 + if state.OOMKilled { 268 + return ErrOOMKilled 269 + } 270 + return ErrWorkflowFailed 263 271 } 264 272 } 265 273
+9
spindle/engine/errors.go
··· 1 + package engine 2 + 3 + import "errors" 4 + 5 + var ( 6 + ErrOOMKilled = errors.New("oom killed") 7 + ErrTimedOut = errors.New("timed out") 8 + ErrWorkflowFailed = errors.New("workflow failed") 9 + )