From 74b3719746e91f6c44215115f60f919e5e3b7511 Mon Sep 17 00:00:00 2001 From: Jasmeet Singh Date: Mon, 19 Aug 2024 13:37:14 +0530 Subject: [PATCH] Added better task status when stopped via timeout --- iterative/utils/logger.go | 3 +++ iterative/utils/logger_test.go | 15 +++++++++++++++ task/common/machine/storage.go | 4 ++-- task/common/values.go | 1 + 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/iterative/utils/logger.go b/iterative/utils/logger.go index 2aa06aaf..abca1e99 100644 --- a/iterative/utils/logger.go +++ b/iterative/utils/logger.go @@ -83,6 +83,9 @@ func formatSchemaStatus(d *schema.ResourceData) string { if status["failed"] != nil && status["failed"].(int) > 0 { message = fmt.Sprintf("\x1b[%dmStatus: completed with errors \x1b[1m•\x1b[0m", colors["ERROR"]) } + if status["timeout"] != nil && status["timeout"].(int) > 0 { + message = fmt.Sprintf("\x1b[%dmStatus: stopped via timeout \x1b[1m•\x1b[0m", colors["WARNING"]) + } if status["running"] != nil && status["running"].(int) >= d.Get("parallelism").(int) { message = fmt.Sprintf("\x1b[%dmStatus: running \x1b[1m•\x1b[0m", colors["WARNING"]) } diff --git a/iterative/utils/logger_test.go b/iterative/utils/logger_test.go index 03b1d3bb..e0796fb7 100644 --- a/iterative/utils/logger_test.go +++ b/iterative/utils/logger_test.go @@ -52,6 +52,21 @@ func TestState3(t *testing.T) { logger.Info("status") } +func TestState4(t *testing.T) { + d := generateSchemaData(t, map[string]interface{}{ + "name": "mytask", + "parallelism": "1", + "status": map[string]interface{}{ + "running": 0, + "timeout": 1, + }, + }) + + logger := logrus.WithFields(logrus.Fields{"d": d}) + logrus.SetFormatter(&TpiFormatter{}) + logger.Info("status") +} + func TestLogs(t *testing.T) { logs := make([]interface{}, 0) logs = append(logs, "-- Logs begin at Tue 2022-03-01 12:25:09 UTC, end at Tue 2022-03-01 12:30:30 UTC. --\nMar 01 12:25:50 tpi000000 systemd[1]: Started tpi-task.service.\nMar 01 12:25:50 tpi000000 sudo[1706]: root : TTY=unknown ; PWD=/tmp/tpi-task ; USER=root ; COMMAND=/usr/bin/apt update\nMar 01 12:25:50 tpi000000 sudo[1706]: pam_unix(sudo:session): session opened for user root by (uid=0)\nMar 01 12:25:50 tpi000000 tpi-task[1711]: WARNING: apt does not have a stable CLI interface. Use with caution in scripts.\nMar 01 12:25:50 tpi000000 tpi-task[1711]: Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease\nMar 01 12:25:50 tpi000000 tpi-task[1711]: Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]\nMar 01 12:25:50 tpi000000 tpi-task[1711]: Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]\nMar 01 12:25:51 tpi000000 tpi-task[1711]: Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]\nMar 01 12:25:51 tpi000000 tpi-task[1711]: Get:5 http://azure.archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB]\n") diff --git a/task/common/machine/storage.go b/task/common/machine/storage.go index 8b8b4437..ea19a005 100644 --- a/task/common/machine/storage.go +++ b/task/common/machine/storage.go @@ -26,8 +26,8 @@ import ( "github.com/rclone/rclone/fs/operations" "github.com/rclone/rclone/fs/sync" - "github.com/sirupsen/logrus" "github.com/0x2b3bfa0/logrusctx" + "github.com/sirupsen/logrus" "terraform-provider-iterative/task/common" ) @@ -114,7 +114,7 @@ func Status(ctx context.Context, remote string, initialStatus common.Status) (co initialStatus[common.StatusCodeFailed] += 1 } } else if statusReport.Result == "timeout" { - initialStatus[common.StatusCodeFailed] += 1 + initialStatus[common.StatusCodeTimeout] += 1 } } return initialStatus, nil diff --git a/task/common/values.go b/task/common/values.go index 0489c885..88f9cbea 100644 --- a/task/common/values.go +++ b/task/common/values.go @@ -29,6 +29,7 @@ const ( StatusCodeActive StatusCode = "running" StatusCodeSucceeded StatusCode = "succeeded" StatusCodeFailed StatusCode = "failed" + StatusCodeTimeout StatusCode = "timeout" ) type Size struct {