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

Commite52aaba

Browse files
fix: begin impl of reducing autostart false-positive rate
1 parent1aaaad9 commite52aaba

File tree

19 files changed

+276
-25
lines changed

19 files changed

+276
-25
lines changed

‎coderd/database/dbauthz/dbauthz.go‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4032,6 +4032,13 @@ func (q *querier) UpdateWorkspaceLastUsedAt(ctx context.Context, arg database.Up
40324032
returnupdate(q.log,q.auth,fetch,q.db.UpdateWorkspaceLastUsedAt)(ctx,arg)
40334033
}
40344034

4035+
func (q*querier)UpdateWorkspaceNextStartAt(ctx context.Context,arg database.UpdateWorkspaceNextStartAtParams)error {
4036+
fetch:=func(ctx context.Context,arg database.UpdateWorkspaceNextStartAtParams) (database.Workspace,error) {
4037+
returnq.db.GetWorkspaceByID(ctx,arg.ID)
4038+
}
4039+
returnupdate(q.log,q.auth,fetch,q.db.UpdateWorkspaceNextStartAt)(ctx,arg)
4040+
}
4041+
40354042
func (q*querier)UpdateWorkspaceProxy(ctx context.Context,arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy,error) {
40364043
fetch:=func(ctx context.Context,arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy,error) {
40374044
returnq.db.GetWorkspaceProxyByID(ctx,arg.ID)

‎coderd/database/dbauthz/dbauthz_test.go‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1880,6 +1880,13 @@ func (s *MethodTestSuite) TestWorkspace() {
18801880
ID:ws.ID,
18811881
}).Asserts(ws,policy.ActionUpdate).Returns()
18821882
}))
1883+
s.Run("UpdateWorkspaceNextStartAt",s.Subtest(func(db database.Store,check*expects) {
1884+
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
1885+
check.Args(database.UpdateWorkspaceNextStartAtParams{
1886+
ID:ws.ID,
1887+
NextStartAt: sql.NullTime{Valid:true,Time:dbtime.Now()},
1888+
}).Asserts(ws,policy.ActionUpdate)
1889+
}))
18831890
s.Run("BatchUpdateWorkspaceLastUsedAt",s.Subtest(func(db database.Store,check*expects) {
18841891
ws1:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
18851892
ws2:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})

‎coderd/database/dbmem/dbmem.go‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9921,6 +9921,29 @@ func (q *FakeQuerier) UpdateWorkspaceLastUsedAt(_ context.Context, arg database.
99219921
returnsql.ErrNoRows
99229922
}
99239923

9924+
func (q*FakeQuerier)UpdateWorkspaceNextStartAt(ctx context.Context,arg database.UpdateWorkspaceNextStartAtParams)error {
9925+
err:=validateDatabaseType(arg)
9926+
iferr!=nil {
9927+
returnerr
9928+
}
9929+
9930+
q.mutex.Lock()
9931+
deferq.mutex.Unlock()
9932+
9933+
forindex,workspace:=rangeq.workspaces {
9934+
ifworkspace.ID!=arg.ID {
9935+
continue
9936+
}
9937+
9938+
workspace.NextStartAt=arg.NextStartAt
9939+
q.workspaces[index]=workspace
9940+
9941+
returnnil
9942+
}
9943+
9944+
returnsql.ErrNoRows
9945+
}
9946+
99249947
func (q*FakeQuerier)UpdateWorkspaceProxy(_ context.Context,arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy,error) {
99259948
q.mutex.Lock()
99269949
deferq.mutex.Unlock()

‎coderd/database/dbmetrics/querymetrics.go‎

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

‎coderd/database/dbmock/dbmock.go‎

Lines changed: 14 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: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
DROPVIEW workspaces_expanded;
2+
3+
ALTERTABLE ONLY workspaces DROP COLUMN IF EXISTS next_start_at;
4+
5+
CREATE VIEW
6+
workspaces_expanded
7+
AS
8+
SELECT
9+
workspaces.*,
10+
-- Owner
11+
visible_users.avatar_urlAS owner_avatar_url,
12+
visible_users.usernameAS owner_username,
13+
-- Organization
14+
organizations.nameAS organization_name,
15+
organizations.display_nameAS organization_display_name,
16+
organizations.iconAS organization_icon,
17+
organizations.descriptionAS organization_description,
18+
-- Template
19+
templates.nameAS template_name,
20+
templates.display_nameAS template_display_name,
21+
templates.iconAS template_icon,
22+
templates.descriptionAS template_description
23+
FROM
24+
workspaces
25+
INNER JOIN
26+
visible_users
27+
ON
28+
workspaces.owner_id=visible_users.id
29+
INNER JOIN
30+
organizations
31+
ONworkspaces.organization_id=organizations.id
32+
INNER JOIN
33+
templates
34+
ONworkspaces.template_id=templates.id
35+
;
36+
37+
COMMENT ON VIEW workspaces_expanded IS'Joins in the display name information such as username, avatar, and organization name.';
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
ALTERTABLE ONLY workspaces ADD COLUMN IF NOT EXISTS next_start_atTIMESTAMPTZ DEFAULTNULL;
2+
3+
-- Recreate view
4+
DROPVIEW workspaces_expanded;
5+
6+
CREATE VIEW
7+
workspaces_expanded
8+
AS
9+
SELECT
10+
workspaces.*,
11+
-- Owner
12+
visible_users.avatar_urlAS owner_avatar_url,
13+
visible_users.usernameAS owner_username,
14+
-- Organization
15+
organizations.nameAS organization_name,
16+
organizations.display_nameAS organization_display_name,
17+
organizations.iconAS organization_icon,
18+
organizations.descriptionAS organization_description,
19+
-- Template
20+
templates.nameAS template_name,
21+
templates.display_nameAS template_display_name,
22+
templates.iconAS template_icon,
23+
templates.descriptionAS template_description
24+
FROM
25+
workspaces
26+
INNER JOIN
27+
visible_users
28+
ON
29+
workspaces.owner_id=visible_users.id
30+
INNER JOIN
31+
organizations
32+
ONworkspaces.organization_id=organizations.id
33+
INNER JOIN
34+
templates
35+
ONworkspaces.template_id=templates.id
36+
;
37+
38+
COMMENT ON VIEW workspaces_expanded IS'Joins in the display name information such as username, avatar, and organization name.';

‎coderd/database/modelmethods.go‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ func (w Workspace) WorkspaceTable() WorkspaceTable {
214214
DeletingAt:w.DeletingAt,
215215
AutomaticUpdates:w.AutomaticUpdates,
216216
Favorite:w.Favorite,
217+
NextStartAt:w.NextStartAt,
217218
}
218219
}
219220

@@ -438,6 +439,7 @@ func ConvertWorkspaceRows(rows []GetWorkspacesRow) []Workspace {
438439
TemplateDisplayName:r.TemplateDisplayName,
439440
TemplateIcon:r.TemplateIcon,
440441
TemplateDescription:r.TemplateDescription,
442+
NextStartAt:r.NextStartAt,
441443
}
442444
}
443445

‎coderd/database/modelqueries.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ func (q *sqlQuerier) GetAuthorizedWorkspaces(ctx context.Context, arg GetWorkspa
289289
&i.DeletingAt,
290290
&i.AutomaticUpdates,
291291
&i.Favorite,
292+
&i.NextStartAt,
292293
&i.OwnerAvatarUrl,
293294
&i.OwnerUsername,
294295
&i.OrganizationName,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp