From 47e517a3a5be00d13d61fa4c7f31f40958d04f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Mon, 18 Jul 2022 16:36:45 +0200 Subject: [PATCH] Worker: cleanly sign off after flushing buffer When running the Worker with the `-flush` CLI argument, actually sign off from the Manager before shutting down. --- cmd/flamenco-worker/main.go | 1 + internal/worker/state_offline.go | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cmd/flamenco-worker/main.go b/cmd/flamenco-worker/main.go index 305a4948..ad95c5d0 100644 --- a/cmd/flamenco-worker/main.go +++ b/cmd/flamenco-worker/main.go @@ -119,6 +119,7 @@ func main() { if cliArgs.flush { log.Info().Msg("upstream buffer flushed, shutting down") + worker.SignOff(workerCtx, log.Logger, client) workerCtxCancel() shutdown() return diff --git a/internal/worker/state_offline.go b/internal/worker/state_offline.go index df998e96..319098a7 100644 --- a/internal/worker/state_offline.go +++ b/internal/worker/state_offline.go @@ -6,6 +6,7 @@ import ( "context" "os" + "github.com/rs/zerolog" "github.com/rs/zerolog/log" "git.blender.org/flamenco/pkg/api" @@ -40,13 +41,17 @@ func (w *Worker) SignOff(ctx context.Context) { logger.Info().Msg("signing off at Manager") - resp, err := w.client.SignOffWithResponse(ctx) - if err != nil { + SignOff(ctx, logger, w.client) +} + +// SignOff sends a signoff request to the Manager. +// Any error is logged but not returned. +func SignOff(ctx context.Context, logger zerolog.Logger, client FlamencoClient) { + resp, err := client.SignOffWithResponse(ctx) + switch { + case err != nil: logger.Error().Err(err).Msg("unable to sign off at Manager") - return - } - if resp.JSONDefault != nil { + case resp.JSONDefault != nil: logger.Error().Interface("error", resp.JSONDefault).Msg("error received when signing off at Manager") - return } }