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

Commitb7a6a36

Browse files
committed
rewritten view
1 parent1bd6b36 commitb7a6a36

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

‎coderd/database/migrations/000396_update_task_status_view.up.sql‎

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ AS
1111

1212
WHENlatest_build.job_status='failed' THEN'error'::task_status
1313

14+
WHENlatest_build.job_statusIN ('canceling','canceled') THEN'error'::task_status
15+
1416
WHENlatest_build.transitionIN ('stop','delete')
1517
ANDlatest_build.job_status='succeeded' THEN'paused'::task_status
1618

@@ -19,18 +21,23 @@ AS
1921

2022
WHENlatest_build.transition='start'ANDlatest_build.job_statusIN ('running','succeeded') THEN
2123
CASE
22-
WHENagent_status.none THEN'initializing'::task_status
23-
WHENagent_status.connecting THEN'initializing'::task_status
24-
WHENagent_status.connected THEN
24+
WHENagent_status.noneORagent_status.connecting THEN'initializing'::task_status
25+
-- If the agent is shut down, but the workspace isn't
26+
-- stopped, show as error.
27+
WHENagent_status.shutdown THEN'error'::task_status
28+
-- Start failed also means connected, but we don't
29+
-- necessarily want to surface an error.
30+
WHENagent_status.connectedORagent_status.connected_start_failed THEN
2531
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
32+
WHENapp_status.unhealthy THEN'error'::task_status
33+
WHENapp_status.initializing THEN'initializing'::task_status
34+
WHENapp_status.healthy_or_disabled THEN'active'::task_status
35+
-- Fall back to surfacing error in case the app isn't healthy.
36+
WHENagent_status.connected_start_failed THEN'error'::task_status
2937
ELSE'unknown'::task_status
3038
END
3139
ELSE'unknown'::task_status
3240
END
33-
3441
ELSE'unknown'::task_status
3542
ENDAS status,
3643
task_app.*,
@@ -62,21 +69,25 @@ AS
6269
WHEREworkspace_build.workspace_id=tasks.workspace_id
6370
ANDworkspace_build.build_number=task_app.workspace_build_number
6471
) latest_buildON TRUE
65-
CROSS JOIN LATERAL (
72+
LEFT JOIN LATERAL (
6673
SELECT
67-
COUNT(*)=0AS none,
68-
bool_or(workspace_agent.lifecycle_stateIN ('created','starting'))AS connecting,
69-
bool_and(workspace_agent.lifecycle_state='ready')AS connected
74+
workspace_agent.id ISNULLAS none,
75+
-- This is essentially `IN ('shutting_down', 'shutdown_timeout', 'shutdown_error', 'off')`,
76+
-- but we cannot use it because the values were added in a migration.
77+
COALESCE(workspace_agent.lifecycle_state NOTIN ('created','starting','start_timeout','start_error','ready'), false)AS shutdown,
78+
COALESCE(workspace_agent.lifecycle_stateIN ('created','starting'), false)AS connecting,
79+
COALESCE(workspace_agent.lifecycle_stateIN ('start_timeout','start_error'), false)AS connected_start_failed,
80+
COALESCE(workspace_agent.lifecycle_state='ready', false)AS connected
7081
FROM workspace_agents workspace_agent
7182
WHEREworkspace_agent.id=task_app.workspace_agent_id
72-
) agent_status
73-
CROSS JOIN LATERAL (
83+
) agent_statusON TRUE
84+
LEFT JOIN LATERAL (
7485
SELECT
75-
bool_or(workspace_app.health='unhealthy')ASany_unhealthy,
76-
bool_or(workspace_app.health='initializing')ASany_initializing,
77-
bool_and(workspace_app.healthIN ('healthy','disabled'))ASall_healthy_or_disabled
86+
COALESCE(workspace_app.health='unhealthy', false)ASunhealthy,
87+
COALESCE(workspace_app.health='initializing', false)ASinitializing,
88+
COALESCE(workspace_app.healthIN ('healthy','disabled'), false)AShealthy_or_disabled
7889
FROM workspace_apps workspace_app
7990
WHEREworkspace_app.id=task_app.workspace_app_id
80-
) app_status
91+
) app_statusON TRUE
8192
WHERE
8293
tasks.deleted_at ISNULL;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp