From a3c6b5f153592acebd927b7e91bbdfcf52125a14 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sun, 16 Aug 2026 23:45:05 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=80=D0=B0=D0=B7=D1=80=D0=B5=D1=88?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20timeout/failed=20=E2=86=92=20collecting=20?= =?UTF-8?q?(=D0=BF=D0=B5=D1=80=D0=B5=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA?= =?UTF-8?q?=20=D1=81=D0=B1=D0=BE=D1=80=D0=B0=20=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=20/start=20=D0=B8=20/retry)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/storage/models.go | 4 ++-- internal/storage/models_test.go | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/storage/models.go b/internal/storage/models.go index f28a14f..3b537b9 100644 --- a/internal/storage/models.go +++ b/internal/storage/models.go @@ -32,8 +32,8 @@ var validTransitions = map[Status][]Status{ StatusReady: {StatusRunning, StatusCancelled, StatusAborted, StatusClosed, StatusCollecting}, // правка готового StatusRunning: {StatusSuccess, StatusFailed, StatusTimeout, StatusCancelled}, StatusSuccess: {StatusClosed}, - StatusFailed: {StatusReady, StatusClosed, StatusCancelled}, // retry - StatusTimeout: {StatusReady, StatusClosed, StatusCancelled}, // retry + StatusFailed: {StatusReady, StatusClosed, StatusCancelled, StatusCollecting}, // retry: перезапуск сбора + StatusTimeout: {StatusReady, StatusClosed, StatusCancelled, StatusCollecting}, // retry: перезапуск сбора StatusCancelled: {StatusClosed}, StatusAborted: {StatusClosed}, StatusClosed: {}, // терминальный diff --git a/internal/storage/models_test.go b/internal/storage/models_test.go index 9b9581b..12aa16a 100644 --- a/internal/storage/models_test.go +++ b/internal/storage/models_test.go @@ -18,10 +18,13 @@ func TestIsValidTransition(t *testing.T) { {StatusRunning, StatusTimeout, true}, {StatusSuccess, StatusClosed, true}, {StatusSuccess, StatusDraft, false}, - {StatusFailed, StatusReady, true}, // retry + {StatusFailed, StatusReady, true}, // retry {StatusFailed, StatusClosed, true}, {StatusFailed, StatusRunning, false}, - {StatusTimeout, StatusReady, true}, // retry + {StatusFailed, StatusCollecting, true}, // retry: перезапуск сбора + {StatusTimeout, StatusReady, true}, // retry + {StatusTimeout, StatusCollecting, true}, // retry: перезапуск сбора + {StatusTimeout, StatusRunning, false}, {StatusClosed, StatusDraft, false}, {StatusClosed, StatusRunning, false}, } @@ -46,4 +49,4 @@ func TestIsTerminal(t *testing.T) { if IsTerminal(StatusRunning) { t.Error("StatusRunning should NOT be terminal") } -} \ No newline at end of file +}