Skip to content

Commit 410aea8

Browse files
committed
feat(coderd): use task data model when creating a new task
Updates coder/internal#976
1 parent 0faee8e commit 410aea8

File tree

19 files changed

+931
-122
lines changed

19 files changed

+931
-122
lines changed

cli/exp_task_status.go

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -152,33 +152,28 @@ func (r *RootCmd) taskStatus() *serpent.Command {
152152
}
153153

154154
func taskWatchIsEnded(task codersdk.Task) bool {
155-
if task.Status == codersdk.WorkspaceStatusStopped {
156-
return true
157-
}
158-
if task.WorkspaceAgentHealth == nil || !task.WorkspaceAgentHealth.Healthy {
159-
return false
160-
}
161-
if task.WorkspaceAgentLifecycle == nil || task.WorkspaceAgentLifecycle.Starting() || task.WorkspaceAgentLifecycle.ShuttingDown() {
162-
return false
163-
}
164-
if task.CurrentState == nil || task.CurrentState.State == codersdk.TaskStateWorking {
155+
switch task.Status {
156+
case codersdk.TaskStatusPending, codersdk.TaskStatusInitializing, codersdk.TaskStatusActive:
157+
if task.CurrentState != nil || task.CurrentState.State != codersdk.TaskStateWorking {
158+
return true
159+
}
165160
return false
161+
default:
162+
return true
166163
}
167-
return true
168164
}
169165

170166
type taskStatusRow struct {
171167
codersdk.Task `table:"-"`
172168
ChangedAgo string `json:"-" table:"state changed,default_sort"`
173169
Timestamp time.Time `json:"-" table:"-"`
174-
TaskStatus string `json:"-" table:"status"`
175170
Healthy bool `json:"-" table:"healthy"`
176171
TaskState string `json:"-" table:"state"`
177172
Message string `json:"-" table:"message"`
178173
}
179174

180175
func taskStatusRowEqual(r1, r2 taskStatusRow) bool {
181-
return r1.TaskStatus == r2.TaskStatus &&
176+
return r1.Status == r2.Status &&
182177
r1.Healthy == r2.Healthy &&
183178
r1.TaskState == r2.TaskState &&
184179
r1.Message == r2.Message
@@ -189,7 +184,6 @@ func toStatusRow(task codersdk.Task) taskStatusRow {
189184
Task: task,
190185
ChangedAgo: time.Since(task.UpdatedAt).Truncate(time.Second).String() + " ago",
191186
Timestamp: task.UpdatedAt,
192-
TaskStatus: string(task.Status),
193187
}
194188
tsr.Healthy = task.WorkspaceAgentHealth != nil &&
195189
task.WorkspaceAgentHealth.Healthy &&

cli/exp_task_status_test.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ func Test_TaskStatus(t *testing.T) {
7575
})
7676
case "/api/experimental/tasks/me/11111111-1111-1111-1111-111111111111":
7777
httpapi.Write(ctx, w, http.StatusOK, codersdk.Task{
78-
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
79-
Status: codersdk.WorkspaceStatusRunning,
80-
CreatedAt: now,
81-
UpdatedAt: now,
78+
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
79+
WorkspaceStatus: codersdk.WorkspaceStatusRunning,
80+
CreatedAt: now,
81+
UpdatedAt: now,
8282
CurrentState: &codersdk.TaskStateEntry{
8383
State: codersdk.TaskStateWorking,
8484
Timestamp: now,
@@ -115,20 +115,20 @@ STATE CHANGED STATUS HEALTHY STATE MESSAGE
115115
switch calls.Load() {
116116
case 0:
117117
httpapi.Write(ctx, w, http.StatusOK, codersdk.Task{
118-
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
119-
Status: codersdk.WorkspaceStatusPending,
120-
CreatedAt: now.Add(-5 * time.Second),
121-
UpdatedAt: now.Add(-5 * time.Second),
118+
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
119+
WorkspaceStatus: codersdk.WorkspaceStatusPending,
120+
CreatedAt: now.Add(-5 * time.Second),
121+
UpdatedAt: now.Add(-5 * time.Second),
122122
WorkspaceAgentHealth: &codersdk.WorkspaceAgentHealth{
123123
Healthy: true,
124124
},
125125
WorkspaceAgentLifecycle: ptr.Ref(codersdk.WorkspaceAgentLifecycleReady),
126126
})
127127
case 1:
128128
httpapi.Write(ctx, w, http.StatusOK, codersdk.Task{
129-
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
130-
Status: codersdk.WorkspaceStatusRunning,
131-
CreatedAt: now.Add(-5 * time.Second),
129+
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
130+
WorkspaceStatus: codersdk.WorkspaceStatusRunning,
131+
CreatedAt: now.Add(-5 * time.Second),
132132
WorkspaceAgentHealth: &codersdk.WorkspaceAgentHealth{
133133
Healthy: true,
134134
},
@@ -137,10 +137,10 @@ STATE CHANGED STATUS HEALTHY STATE MESSAGE
137137
})
138138
case 2:
139139
httpapi.Write(ctx, w, http.StatusOK, codersdk.Task{
140-
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
141-
Status: codersdk.WorkspaceStatusRunning,
142-
CreatedAt: now.Add(-5 * time.Second),
143-
UpdatedAt: now.Add(-4 * time.Second),
140+
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
141+
WorkspaceStatus: codersdk.WorkspaceStatusRunning,
142+
CreatedAt: now.Add(-5 * time.Second),
143+
UpdatedAt: now.Add(-4 * time.Second),
144144
WorkspaceAgentHealth: &codersdk.WorkspaceAgentHealth{
145145
Healthy: true,
146146
},
@@ -153,10 +153,10 @@ STATE CHANGED STATUS HEALTHY STATE MESSAGE
153153
})
154154
case 3:
155155
httpapi.Write(ctx, w, http.StatusOK, codersdk.Task{
156-
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
157-
Status: codersdk.WorkspaceStatusRunning,
158-
CreatedAt: now.Add(-5 * time.Second),
159-
UpdatedAt: now.Add(-4 * time.Second),
156+
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
157+
WorkspaceStatus: codersdk.WorkspaceStatusRunning,
158+
CreatedAt: now.Add(-5 * time.Second),
159+
UpdatedAt: now.Add(-4 * time.Second),
160160
WorkspaceAgentHealth: &codersdk.WorkspaceAgentHealth{
161161
Healthy: true,
162162
},
@@ -215,10 +215,10 @@ STATE CHANGED STATUS HEALTHY STATE MESSAGE
215215
})
216216
case "/api/experimental/tasks/me/11111111-1111-1111-1111-111111111111":
217217
httpapi.Write(ctx, w, http.StatusOK, codersdk.Task{
218-
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
219-
Status: codersdk.WorkspaceStatusRunning,
220-
CreatedAt: ts,
221-
UpdatedAt: ts,
218+
ID: uuid.MustParse("11111111-1111-1111-1111-111111111111"),
219+
WorkspaceStatus: codersdk.WorkspaceStatusRunning,
220+
CreatedAt: ts,
221+
UpdatedAt: ts,
222222
CurrentState: &codersdk.TaskStateEntry{
223223
State: codersdk.TaskStateWorking,
224224
Timestamp: ts.Add(time.Second),

0 commit comments

Comments
 (0)