Skip to content

Commit 4e95b1d

Browse files
authored
fix: revert changes to GetRunningPrebuiltWorkspaces (#18688)
… (#18588)" This reverts commit 258a839.
1 parent 3d22e27 commit 4e95b1d

File tree

3 files changed

+25
-188
lines changed

3 files changed

+25
-188
lines changed

coderd/database/querier_test.go

Lines changed: 3 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -3758,9 +3758,9 @@ func createPrebuiltWorkspace(
37583758
job := dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
37593759
Type: database.ProvisionerJobTypeWorkspaceBuild,
37603760
OrganizationID: orgID,
3761-
CreatedAt: now.Add(-1 * time.Minute),
3762-
CompletedAt: sql.NullTime{Time: now, Valid: true},
3763-
Error: jobError,
3761+
3762+
CreatedAt: now.Add(-1 * time.Minute),
3763+
Error: jobError,
37643764
})
37653765

37663766
// create ready agents
@@ -3930,95 +3930,6 @@ func TestWorkspacePrebuildsView(t *testing.T) {
39303930
}
39313931
}
39323932

3933-
func TestGetRunningPrebuiltWorkspaces(t *testing.T) {
3934-
t.Parallel()
3935-
if !dbtestutil.WillUsePostgres() {
3936-
t.SkipNow()
3937-
}
3938-
3939-
now := dbtime.Now()
3940-
orgID := uuid.New()
3941-
userID := uuid.New()
3942-
3943-
testCases := []struct {
3944-
name string
3945-
readyAgents int
3946-
notReadyAgents int
3947-
expectRows int
3948-
expectReady bool
3949-
}{
3950-
{
3951-
name: "one ready agent",
3952-
readyAgents: 1,
3953-
notReadyAgents: 0,
3954-
expectRows: 1,
3955-
expectReady: true,
3956-
},
3957-
{
3958-
name: "one not ready agent",
3959-
readyAgents: 0,
3960-
notReadyAgents: 1,
3961-
expectRows: 1,
3962-
expectReady: false,
3963-
},
3964-
{
3965-
name: "one ready, one not ready",
3966-
readyAgents: 1,
3967-
notReadyAgents: 1,
3968-
expectRows: 1,
3969-
expectReady: false,
3970-
},
3971-
{
3972-
name: "both ready",
3973-
readyAgents: 2,
3974-
notReadyAgents: 0,
3975-
expectRows: 1,
3976-
expectReady: true,
3977-
},
3978-
{
3979-
name: "five ready, one not ready",
3980-
readyAgents: 5,
3981-
notReadyAgents: 1,
3982-
expectRows: 1,
3983-
expectReady: false,
3984-
},
3985-
}
3986-
3987-
for _, tc := range testCases {
3988-
t.Run(tc.name, func(t *testing.T) {
3989-
t.Parallel()
3990-
3991-
sqlDB := testSQLDB(t)
3992-
err := migrations.Up(sqlDB)
3993-
require.NoError(t, err)
3994-
db := database.New(sqlDB)
3995-
3996-
ctx := testutil.Context(t, testutil.WaitShort)
3997-
3998-
dbgen.Organization(t, db, database.Organization{
3999-
ID: orgID,
4000-
})
4001-
dbgen.User(t, db, database.User{
4002-
ID: userID,
4003-
})
4004-
4005-
tmpl := createTemplate(t, db, orgID, userID)
4006-
tmplV1 := createTmplVersionAndPreset(t, db, tmpl, tmpl.ActiveVersionID, now, nil)
4007-
createPrebuiltWorkspace(ctx, t, db, tmpl, tmplV1, orgID, now, &createPrebuiltWorkspaceOpts{
4008-
readyAgents: tc.readyAgents,
4009-
notReadyAgents: tc.notReadyAgents,
4010-
})
4011-
4012-
workspacePrebuilds, err := db.GetRunningPrebuiltWorkspaces(ctx)
4013-
require.NoError(t, err)
4014-
require.Len(t, workspacePrebuilds, tc.expectRows)
4015-
if tc.expectRows > 0 {
4016-
require.Equal(t, tc.expectReady, workspacePrebuilds[0].Ready)
4017-
}
4018-
})
4019-
}
4020-
}
4021-
40223933
func TestGetPresetsBackoff(t *testing.T) {
40233934
t.Parallel()
40243935
if !dbtestutil.WillUsePostgres() {

coderd/database/queries.sql.go

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

coderd/database/queries/prebuilds.sql

Lines changed: 11 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -49,55 +49,18 @@ WHERE tvp.desired_instances IS NOT NULL -- Consider only presets that have a pre
4949
AND (t.id = sqlc.narg('template_id')::uuid OR sqlc.narg('template_id') IS NULL);
5050

5151
-- name: GetRunningPrebuiltWorkspaces :many
52-
WITH latest_prebuilds AS (
53-
SELECT
54-
latest_build.workspace_id,
55-
workspaces.name,
56-
workspaces.template_id,
57-
latest_build.template_version_id,
58-
latest_build.template_version_preset_id,
59-
latest_build.job_id,
60-
workspaces.created_at
61-
FROM workspaces
62-
JOIN LATERAL (
63-
SELECT
64-
workspace_builds.workspace_id,
65-
workspace_builds.template_version_id,
66-
workspace_builds.job_id,
67-
workspace_builds.template_version_preset_id
68-
FROM workspace_builds
69-
JOIN provisioner_jobs ON provisioner_jobs.id = workspace_builds.job_id
70-
WHERE workspace_builds.workspace_id = workspaces.id
71-
AND workspace_builds.transition = 'start'::workspace_transition
72-
AND provisioner_jobs.job_status = 'succeeded'::provisioner_job_status
73-
ORDER BY workspace_builds.build_number DESC
74-
LIMIT 1
75-
) AS latest_build ON true
76-
WHERE workspaces.deleted = false
77-
AND workspaces.owner_id = 'c42fdf75-3097-471c-8c33-fb52454d81c0'::UUID
78-
),
79-
ready_agents AS (
80-
SELECT
81-
latest_prebuilds.job_id,
82-
BOOL_AND(workspace_agents.lifecycle_state = 'ready'::workspace_agent_lifecycle_state)::boolean AS ready
83-
FROM latest_prebuilds
84-
JOIN workspace_resources ON workspace_resources.job_id = latest_prebuilds.job_id
85-
JOIN workspace_agents ON workspace_agents.resource_id = workspace_resources.id
86-
WHERE workspace_agents.deleted = false
87-
AND workspace_agents.parent_id IS NULL
88-
GROUP BY latest_prebuilds.job_id
89-
)
9052
SELECT
91-
latest_prebuilds.workspace_id AS id,
92-
latest_prebuilds.name,
93-
latest_prebuilds.template_id,
94-
latest_prebuilds.template_version_id,
95-
latest_prebuilds.template_version_preset_id AS current_preset_id,
96-
COALESCE(ready_agents.ready, false)::boolean AS ready,
97-
latest_prebuilds.created_at
98-
FROM latest_prebuilds
99-
LEFT JOIN ready_agents ON ready_agents.job_id = latest_prebuilds.job_id
100-
ORDER BY latest_prebuilds.workspace_id ASC;
53+
p.id,
54+
p.name,
55+
p.template_id,
56+
b.template_version_id,
57+
p.current_preset_id AS current_preset_id,
58+
p.ready,
59+
p.created_at
60+
FROM workspace_prebuilds p
61+
INNER JOIN workspace_latest_builds b ON b.workspace_id = p.id
62+
WHERE (b.transition = 'start'::workspace_transition
63+
AND b.job_status = 'succeeded'::provisioner_job_status);
10164

10265
-- name: CountInProgressPrebuilds :many
10366
-- CountInProgressPrebuilds returns the number of in-progress prebuilds, grouped by preset ID and transition.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy