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 +}