Skip to content

Commit c5062e3

Browse files
teoknopers8
authored andcommitted
[core] Improve auto-transitioning environment events to GUI
1 parent 1d63035 commit c5062e3

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

core/environment/manager.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ func (envs *Manager) CreateAutoEnvironment(workflowPath string, userVars map[str
924924

925925
goErrorKillDestroy := func(op string) {
926926
envState := env.CurrentState()
927-
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err})
927+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: fmt.Sprintf("environment is in %s, handling ERROR", envState), EnvironmentID: env.Id().String(), Error: err})
928928
log.WithField("state", envState).
929929
WithField("environment", env.Id().String()).
930930
WithError(err).
@@ -937,14 +937,15 @@ func (envs *Manager) CreateAutoEnvironment(workflowPath string, userVars map[str
937937
log.WithField("partition", env.Id().String()).
938938
WithField("state", envState).
939939
Debug("could not transition failed auto-transitioning environment to ERROR, cleanup in progress")
940+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "transition ERROR failed, forcing", EnvironmentID: env.Id().String(), Error: err})
940941
env.setState("ERROR")
941942
}
942943

943944
envTasks := env.Workflow().GetTasks()
944945
// TeardownEnvironment manages the envs.mu internally
945946
err = envs.TeardownEnvironment(env.Id(), true /*force*/)
946947
if err != nil {
947-
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err})
948+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "force teardown failed, handling", EnvironmentID: env.Id().String(), Error: err})
948949
}
949950

950951
killedTasks, _, rlsErr := envs.taskman.KillTasks(envTasks.GetTaskIds())
@@ -959,6 +960,8 @@ func (envs *Manager) CreateAutoEnvironment(workflowPath string, userVars map[str
959960
}).
960961
Infof("auto-environment failed at %s, tasks were cleaned up", op)
961962
log.WithField("partition", env.Id().String()).Info("environment teardown complete")
963+
964+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "environment teardown complete", EnvironmentID: env.Id().String()})
962965
}
963966

964967
if err != nil {
@@ -973,7 +976,7 @@ func (envs *Manager) CreateAutoEnvironment(workflowPath string, userVars map[str
973976
// now we have the environment we should transition to start
974977
trans := NewStartActivityTransition(envs.taskman)
975978
if trans == nil {
976-
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err})
979+
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err, Message: "transition START_ACTIVITY failed, handling"})
977980
goErrorKillDestroy("transition START_ACTIVITY")
978981

979982
return
@@ -1000,22 +1003,24 @@ func (envs *Manager) CreateAutoEnvironment(workflowPath string, userVars map[str
10001003
// RUN finished so we can reset and delete the environment
10011004
err = env.TryTransition(NewResetTransition(envs.taskman))
10021005
if err != nil {
1003-
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err})
1006+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "transition RESET failed, handling", EnvironmentID: env.Id().String(), Error: err})
10041007
goErrorKillDestroy("transition RESET")
10051008
return
10061009
}
10071010
err = envs.TeardownEnvironment(env.id, false)
10081011
if err != nil {
1009-
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err})
1012+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "teardown failed, handling", EnvironmentID: env.Id().String(), Error: err})
10101013
goErrorKillDestroy("teardown")
10111014
return
10121015
}
10131016
tasksForEnv := env.Workflow().GetTasks().GetTaskIds()
10141017
_, _, err = envs.taskman.KillTasks(tasksForEnv)
10151018
if err != nil {
1016-
env.sendEnvironmentEvent(&event.EnvironmentEvent{EnvironmentID: env.Id().String(), Error: err})
1019+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "task kill failed, handling", EnvironmentID: env.Id().String(), Error: err})
10171020
return
10181021
}
1022+
1023+
env.sendEnvironmentEvent(&event.EnvironmentEvent{Message: "environment teardown complete", EnvironmentID: env.Id().String()})
10191024
return
10201025
case "ERROR":
10211026
fallthrough

0 commit comments

Comments
 (0)