Skip to content

Commit 906154a

Browse files
committed
containerState struct with Status and StatusMessage
1 parent 25d90c6 commit 906154a

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

internal/orchestrator/helpers.go

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ import (
3737

3838
type AppStatusInfo struct {
3939
AppPath *paths.Path
40-
State State
40+
Status Status
4141
}
4242

43-
type containerStateInfo struct {
44-
State State
43+
type containerState struct {
44+
Status Status
4545
StatusMessage string
4646
}
4747

@@ -58,17 +58,16 @@ type containerStateInfo struct {
5858
// starting: at least one starting
5959
func parseAppStatus(containers []container.Summary) []AppStatusInfo {
6060
apps := make([]AppStatusInfo, 0, len(containers))
61-
appsStatusMap := make(map[string][]containerStateInfo)
61+
appsStatusMap := make(map[string][]containerState)
6262
for _, c := range containers {
6363
appPath, ok := c.Labels[DockerAppPathLabel]
6464
if !ok {
6565
continue
6666
}
67-
appsStatusMap[appPath] = append(appsStatusMap[appPath], containerStateInfo{
68-
State: StatusFromDockerState(c.State),
67+
appsStatusMap[appPath] = append(appsStatusMap[appPath], containerState{
68+
Status: StatusFromDockerState(c.State),
6969
StatusMessage: c.Status,
7070
})
71-
7271
slog.Debug("Container status",
7372
slog.String("appPath", appPath),
7473
slog.String("containerID", c.ID),
@@ -77,10 +76,10 @@ func parseAppStatus(containers []container.Summary) []AppStatusInfo {
7776
)
7877
}
7978

80-
appendResult := func(appPath *paths.Path, status State) {
79+
appendResult := func(appPath *paths.Path, status Status) {
8180
apps = append(apps, AppStatusInfo{
8281
AppPath: appPath,
83-
State: status,
82+
Status: status,
8483
})
8584
}
8685

@@ -90,33 +89,33 @@ func parseAppStatus(containers []container.Summary) []AppStatusInfo {
9089
appPath := paths.New(appPath)
9190

9291
// running: all running
93-
if !slices.ContainsFunc(s, func(v containerStateInfo) bool { return v.State != StatusRunning }) {
92+
if !slices.ContainsFunc(s, func(v containerState) bool { return v.Status != StatusRunning }) {
9493
appendResult(appPath, StatusRunning)
9594
continue
9695
}
9796
// stopped: all stopped
98-
if !slices.ContainsFunc(s, func(v containerStateInfo) bool { return v.State != StatusStopped }) {
97+
if !slices.ContainsFunc(s, func(v containerState) bool { return v.Status != StatusStopped }) {
9998
appendResult(appPath, StatusStopped)
10099
continue
101100
}
102101

103102
// ...else we have multiple different status we calculate the status
104103
// among the possible left: {failed, stopping, starting}
105-
if slices.ContainsFunc(s, func(v containerStateInfo) bool { return v.State == StatusFailed }) {
104+
if slices.ContainsFunc(s, func(v containerState) bool { return v.Status == StatusFailed }) {
106105
appendResult(appPath, StatusFailed)
107106
continue
108107
}
109-
if slices.ContainsFunc(s, func(v containerStateInfo) bool {
110-
return v.State == StatusStopped && strings.Contains(v.StatusMessage, "Exited (0)")
108+
if slices.ContainsFunc(s, func(v containerState) bool {
109+
return v.Status == StatusStopped && strings.Contains(v.StatusMessage, "Exited (0)")
111110
}) {
112111
appendResult(appPath, StatusFailed)
113112
continue
114113
}
115-
if slices.ContainsFunc(s, func(v containerStateInfo) bool { return v.State == StatusStopping }) {
114+
if slices.ContainsFunc(s, func(v containerState) bool { return v.Status == StatusStopping }) {
116115
appendResult(appPath, StatusStopping)
117116
continue
118117
}
119-
if slices.ContainsFunc(s, func(v containerStateInfo) bool { return v.State == StatusStarting }) {
118+
if slices.ContainsFunc(s, func(v containerState) bool { return v.Status == StatusStarting }) {
120119
appendResult(appPath, StatusStarting)
121120
continue
122121
}
@@ -211,7 +210,7 @@ func getRunningApp(
211210
return nil, fmt.Errorf("failed to get running apps: %w", err)
212211
}
213212
idx := slices.IndexFunc(apps, func(a AppStatusInfo) bool {
214-
return a.State == StatusRunning || a.State == StatusStarting
213+
return a.Status == StatusRunning || a.Status == StatusStarting
215214
})
216215
if idx == -1 {
217216
return nil, nil

internal/orchestrator/helpers_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ func TestParseAppStatus(t *testing.T) {
6464
containerState: []container.ContainerState{container.StateRestarting, container.StateExited},
6565
want: StatusStarting,
6666
},
67+
{
68+
name: "failed",
69+
containerState: []container.ContainerState{container.StateRestarting, container.StateExited},
70+
want: StatusFailed,
71+
},
6772
}
6873

6974
for _, tc := range tests {

0 commit comments

Comments
 (0)