From 39829f1ec4104cec574cffdc84992a8a4b6abf2d Mon Sep 17 00:00:00 2001 From: Simone Gotti Date: Mon, 16 Sep 2019 16:06:26 +0200 Subject: [PATCH] runservice: save step exitstatus in run. For every step save also the command exit status. --- internal/services/executor/executor.go | 4 +++- internal/services/runservice/scheduler.go | 1 + services/runservice/types/types.go | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/services/executor/executor.go b/internal/services/executor/executor.go index 40eb237..6bada90 100644 --- a/internal/services/executor/executor.go +++ b/internal/services/executor/executor.go @@ -983,8 +983,10 @@ func (e *Executor) executeTaskSteps(ctx context.Context, rt *runningTask, pod dr serr = errors.Errorf("failed to execute step %s: %w", util.Dump(step), err) } else if exitCode != 0 { rt.et.Status.Steps[i].Phase = types.ExecutorTaskPhaseFailed - rt.et.Status.Steps[i].ExitCode = exitCode + rt.et.Status.Steps[i].ExitStatus = util.IntP(exitCode) serr = errors.Errorf("step %q failed with exitcode %d", stepName, exitCode) + } else if exitCode == 0 { + rt.et.Status.Steps[i].ExitStatus = util.IntP(exitCode) } if err := e.sendExecutorTaskStatus(ctx, rt.et); err != nil { diff --git a/internal/services/runservice/scheduler.go b/internal/services/runservice/scheduler.go index 76ea855..879e5dd 100644 --- a/internal/services/runservice/scheduler.go +++ b/internal/services/runservice/scheduler.go @@ -688,6 +688,7 @@ func (s *Runservice) updateRunTaskStatus(ctx context.Context, et *types.Executor for i, s := range et.Status.Steps { rt.Steps[i].Phase = s.Phase + rt.Steps[i].ExitStatus = s.ExitStatus rt.Steps[i].StartTime = s.StartTime rt.Steps[i].EndTime = s.EndTime } diff --git a/services/runservice/types/types.go b/services/runservice/types/types.go index 45987af..615c7ce 100644 --- a/services/runservice/types/types.go +++ b/services/runservice/types/types.go @@ -277,6 +277,8 @@ type RunTaskStep struct { // one logphase for every task step LogPhase RunTaskFetchPhase `json:"log_phase,omitempty"` + ExitStatus *int `json:"exit_status"` + StartTime *time.Time `json:"start_time,omitempty"` EndTime *time.Time `json:"end_time,omitempty"` } @@ -532,7 +534,7 @@ type ExecutorTaskStepStatus struct { StartTime *time.Time `json:"start_time,omitempty"` EndTime *time.Time `json:"end_time,omitempty"` - ExitCode int `json:"exit_code,omitempty"` + ExitStatus *int `json:"exit_status,omitempty"` } type Container struct {