Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit82945cf

Browse files
authored
fix(coderd/database): add missing columns to tasks with status (#20311)
Updatescoder/internal#976
1 parent408b09a commit82945cf

File tree

15 files changed

+502
-169
lines changed

15 files changed

+502
-169
lines changed

‎cli/exp_task_status_test.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ STATE CHANGED STATUS HEALTHY STATE MESSAGE
193193
"workspace_agent_id": null,
194194
"workspace_agent_lifecycle": null,
195195
"workspace_agent_health": null,
196+
"workspace_app_id": null,
196197
"initial_prompt": "",
197198
"status": "running",
198199
"current_state": {

‎coderd/aitasks.go‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,14 @@ func taskFromWorkspace(ws codersdk.Workspace, initialPrompt string) codersdk.Tas
268268
}
269269
}
270270

271+
varappID uuid.NullUUID
272+
ifws.LatestBuild.AITaskSidebarAppID!=nil {
273+
appID= uuid.NullUUID{
274+
Valid:true,
275+
UUID:*ws.LatestBuild.AITaskSidebarAppID,
276+
}
277+
}
278+
271279
return codersdk.Task{
272280
ID:ws.ID,
273281
OrganizationID:ws.OrganizationID,
@@ -279,9 +287,11 @@ func taskFromWorkspace(ws codersdk.Workspace, initialPrompt string) codersdk.Tas
279287
TemplateDisplayName:ws.TemplateDisplayName,
280288
TemplateIcon:ws.TemplateIcon,
281289
WorkspaceID: uuid.NullUUID{Valid:true,UUID:ws.ID},
290+
WorkspaceBuildNumber:ws.LatestBuild.BuildNumber,
282291
WorkspaceAgentID:taskAgentID,
283292
WorkspaceAgentLifecycle:taskAgentLifecycle,
284293
WorkspaceAgentHealth:taskAgentHealth,
294+
WorkspaceAppID:appID,
285295
CreatedAt:ws.CreatedAt,
286296
UpdatedAt:ws.UpdatedAt,
287297
InitialPrompt:initialPrompt,

‎coderd/apidoc/docs.go‎

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/apidoc/swagger.json‎

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/dump.sql‎

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
DROPVIEW IF EXISTS tasks_with_status;
2+
3+
-- Restore from 00037_add_columns_to_tasks_with_status.up.sql.
4+
CREATE VIEW
5+
tasks_with_status
6+
AS
7+
SELECT
8+
tasks.*,
9+
CASE
10+
WHENtasks.workspace_id ISNULLORlatest_build.job_status ISNULL THEN'pending'::task_status
11+
12+
WHENlatest_build.job_status='failed' THEN'error'::task_status
13+
14+
WHENlatest_build.transitionIN ('stop','delete')
15+
ANDlatest_build.job_status='succeeded' THEN'paused'::task_status
16+
17+
WHENlatest_build.transition='start'
18+
ANDlatest_build.job_status='pending' THEN'initializing'::task_status
19+
20+
WHENlatest_build.transition='start'ANDlatest_build.job_statusIN ('running','succeeded') THEN
21+
CASE
22+
WHENagent_status.none THEN'initializing'::task_status
23+
WHENagent_status.connecting THEN'initializing'::task_status
24+
WHENagent_status.connected THEN
25+
CASE
26+
WHENapp_status.any_unhealthy THEN'error'::task_status
27+
WHENapp_status.any_initializing THEN'initializing'::task_status
28+
WHENapp_status.all_healthy_or_disabled THEN'active'::task_status
29+
ELSE'unknown'::task_status
30+
END
31+
ELSE'unknown'::task_status
32+
END
33+
34+
ELSE'unknown'::task_status
35+
ENDAS status
36+
FROM
37+
tasks
38+
LEFT JOIN LATERAL (
39+
SELECT workspace_build_number, workspace_agent_id, workspace_app_id
40+
FROM task_workspace_apps task_app
41+
WHERE task_id=tasks.id
42+
ORDER BY workspace_build_numberDESC
43+
LIMIT1
44+
) task_appON TRUE
45+
LEFT JOIN LATERAL (
46+
SELECT
47+
workspace_build.transition,
48+
provisioner_job.job_status,
49+
workspace_build.job_id
50+
FROM workspace_builds workspace_build
51+
JOIN provisioner_jobs provisioner_jobONprovisioner_job.id=workspace_build.job_id
52+
WHEREworkspace_build.workspace_id=tasks.workspace_id
53+
ANDworkspace_build.build_number=task_app.workspace_build_number
54+
) latest_buildON TRUE
55+
CROSS JOIN LATERAL (
56+
SELECT
57+
COUNT(*)=0AS none,
58+
bool_or(workspace_agent.lifecycle_stateIN ('created','starting'))AS connecting,
59+
bool_and(workspace_agent.lifecycle_state='ready')AS connected
60+
FROM workspace_agents workspace_agent
61+
WHEREworkspace_agent.id=task_app.workspace_agent_id
62+
) agent_status
63+
CROSS JOIN LATERAL (
64+
SELECT
65+
bool_or(workspace_app.health='unhealthy')AS any_unhealthy,
66+
bool_or(workspace_app.health='initializing')AS any_initializing,
67+
bool_and(workspace_app.healthIN ('healthy','disabled'))AS all_healthy_or_disabled
68+
FROM workspace_apps workspace_app
69+
WHEREworkspace_app.id=task_app.workspace_app_id
70+
) app_status
71+
WHERE
72+
tasks.deleted_at ISNULL;
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
-- Drop view from 00037_add_columns_to_tasks_with_status.up.sql.
2+
DROPVIEW IF EXISTS tasks_with_status;
3+
4+
-- Add task_app columns.
5+
CREATE VIEW
6+
tasks_with_status
7+
AS
8+
SELECT
9+
tasks.*,
10+
CASE
11+
WHENtasks.workspace_id ISNULLORlatest_build.job_status ISNULL THEN'pending'::task_status
12+
13+
WHENlatest_build.job_status='failed' THEN'error'::task_status
14+
15+
WHENlatest_build.transitionIN ('stop','delete')
16+
ANDlatest_build.job_status='succeeded' THEN'paused'::task_status
17+
18+
WHENlatest_build.transition='start'
19+
ANDlatest_build.job_status='pending' THEN'initializing'::task_status
20+
21+
WHENlatest_build.transition='start'ANDlatest_build.job_statusIN ('running','succeeded') THEN
22+
CASE
23+
WHENagent_status.none THEN'initializing'::task_status
24+
WHENagent_status.connecting THEN'initializing'::task_status
25+
WHENagent_status.connected THEN
26+
CASE
27+
WHENapp_status.any_unhealthy THEN'error'::task_status
28+
WHENapp_status.any_initializing THEN'initializing'::task_status
29+
WHENapp_status.all_healthy_or_disabled THEN'active'::task_status
30+
ELSE'unknown'::task_status
31+
END
32+
ELSE'unknown'::task_status
33+
END
34+
35+
ELSE'unknown'::task_status
36+
ENDAS status,
37+
task_app.*
38+
FROM
39+
tasks
40+
LEFT JOIN LATERAL (
41+
SELECT workspace_build_number, workspace_agent_id, workspace_app_id
42+
FROM task_workspace_apps task_app
43+
WHERE task_id=tasks.id
44+
ORDER BY workspace_build_numberDESC
45+
LIMIT1
46+
) task_appON TRUE
47+
LEFT JOIN LATERAL (
48+
SELECT
49+
workspace_build.transition,
50+
provisioner_job.job_status,
51+
workspace_build.job_id
52+
FROM workspace_builds workspace_build
53+
JOIN provisioner_jobs provisioner_jobONprovisioner_job.id=workspace_build.job_id
54+
WHEREworkspace_build.workspace_id=tasks.workspace_id
55+
ANDworkspace_build.build_number=task_app.workspace_build_number
56+
) latest_buildON TRUE
57+
CROSS JOIN LATERAL (
58+
SELECT
59+
COUNT(*)=0AS none,
60+
bool_or(workspace_agent.lifecycle_stateIN ('created','starting'))AS connecting,
61+
bool_and(workspace_agent.lifecycle_state='ready')AS connected
62+
FROM workspace_agents workspace_agent
63+
WHEREworkspace_agent.id=task_app.workspace_agent_id
64+
) agent_status
65+
CROSS JOIN LATERAL (
66+
SELECT
67+
bool_or(workspace_app.health='unhealthy')AS any_unhealthy,
68+
bool_or(workspace_app.health='initializing')AS any_initializing,
69+
bool_and(workspace_app.healthIN ('healthy','disabled'))AS all_healthy_or_disabled
70+
FROM workspace_apps workspace_app
71+
WHEREworkspace_app.id=task_app.workspace_app_id
72+
) app_status
73+
WHERE
74+
tasks.deleted_at ISNULL;

‎coderd/database/models.go‎

Lines changed: 14 additions & 11 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp