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

Commitc07a45e

Browse files
authored
fix: Fix workspace count to exclude deleted workspaces (#2916)
1 parent61c52b3 commitc07a45e

File tree

4 files changed

+37
-6
lines changed

4 files changed

+37
-6
lines changed

‎coderd/database/databasefake/databasefake.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ func (q *fakeQuerier) GetWorkspaceOwnerCountsByTemplateIDs(_ context.Context, te
527527

528528
counts:=map[uuid.UUID]map[uuid.UUID]struct{}{}
529529
for_,templateID:=rangetemplateIDs {
530-
found:=false
530+
counts[templateID]=map[uuid.UUID]struct{}{}
531531
for_,workspace:=rangeq.workspaces {
532532
ifworkspace.TemplateID!=templateID {
533533
continue
@@ -541,11 +541,6 @@ func (q *fakeQuerier) GetWorkspaceOwnerCountsByTemplateIDs(_ context.Context, te
541541
}
542542
countByOwnerID[workspace.OwnerID]=struct{}{}
543543
counts[templateID]=countByOwnerID
544-
found=true
545-
break
546-
}
547-
if!found {
548-
counts[templateID]=map[uuid.UUID]struct{}{}
549544
}
550545
}
551546
res:=make([]database.GetWorkspaceOwnerCountsByTemplateIDsRow,0)

‎coderd/database/queries.sql.go

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

‎coderd/database/queries/workspaces.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ FROM
8383
workspaces
8484
WHERE
8585
template_id= ANY(@ids :: uuid [ ])
86+
-- Ignore deleted workspaces
87+
AND deleted!= true
8688
GROUP BY
8789
template_id;
8890

‎coderd/templates_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/stretchr/testify/require"
1212

1313
"github.com/coder/coder/coderd/coderdtest"
14+
"github.com/coder/coder/coderd/rbac"
1415
"github.com/coder/coder/coderd/util/ptr"
1516
"github.com/coder/coder/codersdk"
1617
)
@@ -27,6 +28,37 @@ func TestTemplate(t *testing.T) {
2728
_,err:=client.Template(context.Background(),template.ID)
2829
require.NoError(t,err)
2930
})
31+
32+
t.Run("WorkspaceCount",func(t*testing.T) {
33+
t.Parallel()
34+
ctx:=context.Background()
35+
client:=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerD:true})
36+
user:=coderdtest.CreateFirstUser(t,client)
37+
member:=coderdtest.CreateAnotherUser(t,client,user.OrganizationID,rbac.RoleAdmin())
38+
memberWithDeleted:=coderdtest.CreateAnotherUser(t,client,user.OrganizationID,rbac.RoleAdmin())
39+
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
40+
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
41+
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
42+
43+
// Create 3 workspaces with 3 users. 2 workspaces exist, 1 is deleted
44+
workspace:=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
45+
coderdtest.AwaitWorkspaceBuildJob(t,client,workspace.LatestBuild.ID)
46+
47+
memberWorkspace:=coderdtest.CreateWorkspace(t,member,user.OrganizationID,template.ID)
48+
coderdtest.AwaitWorkspaceBuildJob(t,member,memberWorkspace.LatestBuild.ID)
49+
50+
deletedWorkspace:=coderdtest.CreateWorkspace(t,memberWithDeleted,user.OrganizationID,template.ID)
51+
coderdtest.AwaitWorkspaceBuildJob(t,client,deletedWorkspace.LatestBuild.ID)
52+
build,err:=client.CreateWorkspaceBuild(ctx,deletedWorkspace.ID, codersdk.CreateWorkspaceBuildRequest{
53+
Transition:codersdk.WorkspaceTransitionDelete,
54+
})
55+
require.NoError(t,err)
56+
coderdtest.AwaitWorkspaceBuildJob(t,client,build.ID)
57+
58+
template,err=client.Template(context.Background(),template.ID)
59+
require.NoError(t,err)
60+
require.Equal(t,2,int(template.WorkspaceOwnerCount),"workspace count")
61+
})
3062
}
3163

3264
funcTestPostTemplateByOrganization(t*testing.T) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp