mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
Fixes bug with display message logic due to deprecating GenericSource. Also added more test cases to cover a bunch more edge cases
This commit is contained in:
@@ -583,7 +583,6 @@ const (
|
||||
TaskRestartSignal = "Restart Signaled"
|
||||
TaskLeaderDead = "Leader Task Dead"
|
||||
TaskBuildingTaskDir = "Building Task Directory"
|
||||
TaskGenericMessage = "Generic"
|
||||
)
|
||||
|
||||
// TaskEvent is an event that effects the state of a task and contains meta-data
|
||||
|
||||
@@ -440,8 +440,7 @@ func buildDisplayMessage(event *api.TaskEvent) string {
|
||||
desc = event.DriverMessage
|
||||
case api.TaskLeaderDead:
|
||||
desc = "Leader Task in Group dead"
|
||||
case api.TaskGenericMessage:
|
||||
event.Type = event.GenericSource
|
||||
default:
|
||||
desc = event.Message
|
||||
}
|
||||
|
||||
|
||||
@@ -3963,7 +3963,7 @@ func (event *TaskEvent) PopulateEventDisplayMessage() {
|
||||
case TaskLeaderDead:
|
||||
desc = "Leader Task in Group dead"
|
||||
default:
|
||||
desc = ""
|
||||
desc = event.Message
|
||||
}
|
||||
|
||||
event.DisplayMessage = desc
|
||||
|
||||
@@ -2,6 +2,7 @@ package structs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -2433,24 +2434,47 @@ func TestACLPolicySetHash(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestTaskEventPopulate(t *testing.T) {
|
||||
prepopulatedEvent := NewTaskEvent(TaskSetup)
|
||||
prepopulatedEvent.DisplayMessage = "Hola"
|
||||
testcases := []struct {
|
||||
event *TaskEvent
|
||||
expectedMsg string
|
||||
}{
|
||||
{nil, ""},
|
||||
{prepopulatedEvent, "Hola"},
|
||||
{NewTaskEvent(TaskSetup).SetMessage("Setup"), "Setup"},
|
||||
{NewTaskEvent(TaskStarted), "Task started by client"},
|
||||
{NewTaskEvent(TaskReceived), "Task received by client"},
|
||||
{NewTaskEvent(TaskFailedValidation), "Validation of task failed"},
|
||||
{NewTaskEvent(TaskFailedValidation).SetValidationError(fmt.Errorf("task failed validation")), "task failed validation"},
|
||||
{NewTaskEvent(TaskSetupFailure), "Task setup failed"},
|
||||
{NewTaskEvent(TaskSetupFailure).SetSetupError(fmt.Errorf("task failed setup")), "task failed setup"},
|
||||
{NewTaskEvent(TaskDriverFailure), "Failed to start task"},
|
||||
{NewTaskEvent(TaskDownloadingArtifacts), "Client is downloading artifacts"},
|
||||
{NewTaskEvent(TaskArtifactDownloadFailed), "Failed to download artifacts"},
|
||||
{NewTaskEvent(TaskArtifactDownloadFailed).SetDownloadError(fmt.Errorf("connection reset by peer")), "connection reset by peer"},
|
||||
{NewTaskEvent(TaskRestarting).SetRestartDelay(2 * time.Second).SetRestartReason(ReasonWithinPolicy), "Task restarting in 2s"},
|
||||
{NewTaskEvent(TaskRestarting).SetRestartReason("Chaos Monkey did it"), "Chaos Monkey did it - Task restarting in 0s"},
|
||||
{NewTaskEvent(TaskKilling), "Sent interrupt"},
|
||||
{NewTaskEvent(TaskKilling).SetKillReason("Its time for you to die"), "Killing task: Its time for you to die"},
|
||||
{NewTaskEvent(TaskKilling).SetKillTimeout(1 * time.Second), "Sent interrupt. Waiting 1s before force killing"},
|
||||
{NewTaskEvent(TaskTerminated).SetExitCode(-1).SetSignal(3), "Exit Code: -1, Signal: 3"},
|
||||
{NewTaskEvent(TaskTerminated).SetMessage("Goodbye"), "Exit Code: 0, Exit Message: \"Goodbye\""},
|
||||
{NewTaskEvent(TaskKilled), "Task successfully killed"},
|
||||
{NewTaskEvent(TaskKilled).SetKillError(fmt.Errorf("undead creatures can't be killed")), "undead creatures can't be killed"},
|
||||
{NewTaskEvent(TaskNotRestarting).SetRestartReason("Chaos Monkey did it"), "Chaos Monkey did it"},
|
||||
{NewTaskEvent(TaskNotRestarting), "Task exceeded restart policy"},
|
||||
{NewTaskEvent(TaskLeaderDead), "Leader Task in Group dead"},
|
||||
{NewTaskEvent(TaskSiblingFailed), "Task's sibling failed"},
|
||||
{NewTaskEvent(TaskSiblingFailed).SetFailedSibling("patient zero"), "Task's sibling \"patient zero\" failed"},
|
||||
{NewTaskEvent(TaskSignaling), "Task being sent a signal"},
|
||||
{NewTaskEvent(TaskSignaling).SetTaskSignal(os.Interrupt), "Task being sent signal interrupt"},
|
||||
{NewTaskEvent(TaskSignaling).SetTaskSignal(os.Interrupt).SetTaskSignalReason("process interrupted"), "Task being sent signal interrupt: process interrupted"},
|
||||
{NewTaskEvent(TaskRestartSignal), "Task signaled to restart"},
|
||||
{NewTaskEvent(TaskRestartSignal).SetRestartReason("Chaos Monkey restarted it"), "Chaos Monkey restarted it"},
|
||||
{NewTaskEvent(TaskDriverMessage).SetDriverMessage("YOLO"), "YOLO"},
|
||||
{NewTaskEvent("Unknown Type, No message"), ""},
|
||||
{NewTaskEvent("Unknown Type").SetMessage("Hello world"), "Hello world"},
|
||||
}
|
||||
|
||||
for _, tc := range testcases {
|
||||
|
||||
Reference in New Issue
Block a user