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

Commitb826bf0

Browse files
committed
feat(coderd): add owner-related fields to tasks_with_status view
1 parente4e4669 commitb826bf0

File tree

6 files changed

+194
-16
lines changed

6 files changed

+194
-16
lines changed

‎coderd/aitasks.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,8 @@ func taskFromDBTaskAndWorkspace(dbTask database.Task, ws codersdk.Workspace) cod
339339
ID:dbTask.ID,
340340
OrganizationID:dbTask.OrganizationID,
341341
OwnerID:dbTask.OwnerID,
342-
OwnerName:ws.OwnerName,
343-
OwnerAvatarURL:ws.OwnerAvatarURL,
342+
OwnerName:dbTask.OwnerUsername,
343+
OwnerAvatarURL:dbTask.OwnerAvatarUrl,
344344
Name:dbTask.Name,
345345
TemplateID:ws.TemplateID,
346346
TemplateVersionID:dbTask.TemplateVersionID,

‎coderd/database/dump.sql‎

Lines changed: 19 additions & 11 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
-- Drop view from 000390_tasks_with_status_user_fields.up.sql.
2+
DROPVIEW IF EXISTS tasks_with_status;
3+
4+
-- Restore from 000382_add_columns_to_tasks_with_status.up.sql.
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;
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
-- Drop view from 00037_add_columns_to_tasks_with_status.up.sql.
2+
DROPVIEW IF EXISTS tasks_with_status;
3+
4+
-- Add owner_name, owner_avatar_url 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+
task_owner.*
39+
FROM
40+
tasks
41+
LEFT JOIN LATERAL (
42+
SELECT
43+
vu.usernameAS owner_username,
44+
vu.nameAS owner_name,
45+
vu.avatar_urlAS owner_avatar_url
46+
FROM visible_users vu
47+
WHEREvu.id=tasks.owner_id
48+
) task_ownerON TRUE
49+
LEFT JOIN LATERAL (
50+
SELECT workspace_build_number, workspace_agent_id, workspace_app_id
51+
FROM task_workspace_apps task_app
52+
WHERE task_id=tasks.id
53+
ORDER BY workspace_build_numberDESC
54+
LIMIT1
55+
) task_appON TRUE
56+
LEFT JOIN LATERAL (
57+
SELECT
58+
workspace_build.transition,
59+
provisioner_job.job_status,
60+
workspace_build.job_id
61+
FROM workspace_builds workspace_build
62+
JOIN provisioner_jobs provisioner_jobONprovisioner_job.id=workspace_build.job_id
63+
WHEREworkspace_build.workspace_id=tasks.workspace_id
64+
ANDworkspace_build.build_number=task_app.workspace_build_number
65+
) latest_buildON TRUE
66+
CROSS JOIN LATERAL (
67+
SELECT
68+
COUNT(*)=0AS none,
69+
bool_or(workspace_agent.lifecycle_stateIN ('created','starting'))AS connecting,
70+
bool_and(workspace_agent.lifecycle_state='ready')AS connected
71+
FROM workspace_agents workspace_agent
72+
WHEREworkspace_agent.id=task_app.workspace_agent_id
73+
) agent_status
74+
CROSS JOIN LATERAL (
75+
SELECT
76+
bool_or(workspace_app.health='unhealthy')AS any_unhealthy,
77+
bool_or(workspace_app.health='initializing')AS any_initializing,
78+
bool_and(workspace_app.healthIN ('healthy','disabled'))AS all_healthy_or_disabled
79+
FROM workspace_apps workspace_app
80+
WHEREworkspace_app.id=task_app.workspace_app_id
81+
) app_status
82+
WHERE
83+
tasks.deleted_at ISNULL;
84+

‎coderd/database/models.go‎

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

‎coderd/database/queries.sql.go‎

Lines changed: 12 additions & 3 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