Skip to content

Commit 18930c4

Browse files
committed
chore: rename locked to dormant
- The following columns have been updated: - workspace.locked_at -> dormant_at - template.inactivity_ttl -> time_til_dormant - template.locked_ttl -> time_til_dormant_autodelete This change has also been reflected in the SDK.
1 parent f96622f commit 18930c4

29 files changed

+349
-299
lines changed

cli/templatecreate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func (r *RootCmd) templateCreate() *clibase.Cmd {
134134
VersionID: job.ID,
135135
DefaultTTLMillis: ptr.Ref(defaultTTL.Milliseconds()),
136136
FailureTTLMillis: ptr.Ref(failureTTL.Milliseconds()),
137-
InactivityTTLMillis: ptr.Ref(inactivityTTL.Milliseconds()),
137+
TimeTilDormantMillis: ptr.Ref(inactivityTTL.Milliseconds()),
138138
DisableEveryoneGroupAccess: disableEveryone,
139139
}
140140

cli/templateedit.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func (r *RootCmd) templateEdit() *clibase.Cmd {
104104
Weeks: restartRequirementWeeks,
105105
},
106106
FailureTTLMillis: failureTTL.Milliseconds(),
107-
InactivityTTLMillis: inactivityTTL.Milliseconds(),
107+
TimeTilDormantMillis: inactivityTTL.Milliseconds(),
108108
AllowUserCancelWorkspaceJobs: allowUserCancelWorkspaceJobs,
109109
AllowUserAutostart: allowUserAutostart,
110110
AllowUserAutostop: allowUserAutostop,

cli/templateedit_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ func TestTemplateEdit(t *testing.T) {
752752
ctr.DefaultTTLMillis = nil
753753
ctr.RestartRequirement = nil
754754
ctr.FailureTTLMillis = nil
755-
ctr.InactivityTTLMillis = nil
755+
ctr.TimeTilDormantMillis = nil
756756
})
757757

758758
// Test the cli command with --allow-user-autostart.
@@ -798,7 +798,7 @@ func TestTemplateEdit(t *testing.T) {
798798
assert.Equal(t, template.AllowUserAutostart, updated.AllowUserAutostart)
799799
assert.Equal(t, template.AllowUserAutostop, updated.AllowUserAutostop)
800800
assert.Equal(t, template.FailureTTLMillis, updated.FailureTTLMillis)
801-
assert.Equal(t, template.InactivityTTLMillis, updated.InactivityTTLMillis)
801+
assert.Equal(t, template.TimeTilDormantMillis, updated.TimeTilDormantMillis)
802802
})
803803

804804
t.Run("BlockedNotEntitled", func(t *testing.T) {
@@ -892,7 +892,7 @@ func TestTemplateEdit(t *testing.T) {
892892
assert.Equal(t, template.AllowUserAutostart, updated.AllowUserAutostart)
893893
assert.Equal(t, template.AllowUserAutostop, updated.AllowUserAutostop)
894894
assert.Equal(t, template.FailureTTLMillis, updated.FailureTTLMillis)
895-
assert.Equal(t, template.InactivityTTLMillis, updated.InactivityTTLMillis)
895+
assert.Equal(t, template.TimeTilDormantMillis, updated.TimeTilDormantMillis)
896896
})
897897
t.Run("Entitled", func(t *testing.T) {
898898
t.Parallel()
@@ -990,7 +990,7 @@ func TestTemplateEdit(t *testing.T) {
990990
assert.Equal(t, template.AllowUserAutostart, updated.AllowUserAutostart)
991991
assert.Equal(t, template.AllowUserAutostop, updated.AllowUserAutostop)
992992
assert.Equal(t, template.FailureTTLMillis, updated.FailureTTLMillis)
993-
assert.Equal(t, template.InactivityTTLMillis, updated.InactivityTTLMillis)
993+
assert.Equal(t, template.TimeTilDormantMillis, updated.TimeTilDormantMillis)
994994
})
995995
})
996996
}

coderd/autobuild/lifecycle_executor.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (e *Executor) runOnce(t time.Time) Stats {
180180
if reason == database.BuildReasonAutolock {
181181
ws, err = tx.UpdateWorkspaceLockedDeletingAt(e.ctx, database.UpdateWorkspaceLockedDeletingAtParams{
182182
ID: ws.ID,
183-
LockedAt: sql.NullTime{
183+
DormantAt: sql.NullTime{
184184
Time: database.Now(),
185185
Valid: true,
186186
},
@@ -195,15 +195,15 @@ func (e *Executor) runOnce(t time.Time) Stats {
195195

196196
log.Info(e.ctx, "locked workspace",
197197
slog.F("last_used_at", ws.LastUsedAt),
198-
slog.F("inactivity_ttl", templateSchedule.InactivityTTL),
198+
slog.F("inactivity_ttl", templateSchedule.TimeTilDormant),
199199
slog.F("since_last_used_at", time.Since(ws.LastUsedAt)),
200200
)
201201
}
202202

203203
if reason == database.BuildReasonAutodelete {
204204
log.Info(e.ctx, "deleted workspace",
205-
slog.F("locked_at", ws.LockedAt.Time),
206-
slog.F("locked_ttl", templateSchedule.LockedTTL),
205+
slog.F("locked_at", ws.DormantAt.Time),
206+
slog.F("locked_ttl", templateSchedule.TimeTilDormantAutoDelete),
207207
)
208208
}
209209

@@ -289,7 +289,7 @@ func isEligibleForAutostart(ws database.Workspace, build database.WorkspaceBuild
289289
}
290290

291291
// If the workspace is locked we should not autostart it.
292-
if ws.LockedAt.Valid {
292+
if ws.DormantAt.Valid {
293293
return false
294294
}
295295

@@ -323,7 +323,7 @@ func isEligibleForAutostop(ws database.Workspace, build database.WorkspaceBuild,
323323
}
324324

325325
// If the workspace is locked we should not autostop it.
326-
if ws.LockedAt.Valid {
326+
if ws.DormantAt.Valid {
327327
return false
328328
}
329329

@@ -338,18 +338,18 @@ func isEligibleForAutostop(ws database.Workspace, build database.WorkspaceBuild,
338338
// for breaching the inactivity threshold of the template.
339339
func isEligibleForLockedStop(ws database.Workspace, templateSchedule schedule.TemplateScheduleOptions, currentTick time.Time) bool {
340340
// Only attempt to lock workspaces not already locked.
341-
return !ws.LockedAt.Valid &&
341+
return !ws.DormantAt.Valid &&
342342
// The template must specify an inactivity TTL.
343-
templateSchedule.InactivityTTL > 0 &&
343+
templateSchedule.TimeTilDormant > 0 &&
344344
// The workspace must breach the inactivity TTL.
345-
currentTick.Sub(ws.LastUsedAt) > templateSchedule.InactivityTTL
345+
currentTick.Sub(ws.LastUsedAt) > templateSchedule.TimeTilDormant
346346
}
347347

348348
func isEligibleForDelete(ws database.Workspace, templateSchedule schedule.TemplateScheduleOptions, currentTick time.Time) bool {
349349
// Only attempt to delete locked workspaces.
350-
return ws.LockedAt.Valid && ws.DeletingAt.Valid &&
350+
return ws.DormantAt.Valid && ws.DeletingAt.Valid &&
351351
// Locked workspaces should only be deleted if a locked_ttl is specified.
352-
templateSchedule.LockedTTL > 0 &&
352+
templateSchedule.TimeTilDormantAutoDelete > 0 &&
353353
// The workspace must breach the locked_ttl.
354354
currentTick.After(ws.DeletingAt.Time)
355355
}

coderd/autobuild/lifecycle_executor_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ func TestExecutorInactiveWorkspace(t *testing.T) {
737737
ProvisionApply: echo.ProvisionComplete,
738738
})
739739
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
740-
ctr.InactivityTTLMillis = ptr.Ref[int64](inactiveTTL.Milliseconds())
740+
ctr.TimeTilDormantMillis = ptr.Ref[int64](inactiveTTL.Milliseconds())
741741
})
742742
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
743743
ws := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)

coderd/database/dbfake/dbfake.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ func (q *FakeQuerier) convertToWorkspaceRowsNoLock(ctx context.Context, workspac
341341
AutostartSchedule: w.AutostartSchedule,
342342
Ttl: w.Ttl,
343343
LastUsedAt: w.LastUsedAt,
344-
LockedAt: w.LockedAt,
344+
DormantAt: w.DormantAt,
345345
DeletingAt: w.DeletingAt,
346346
Count: count,
347347
}
@@ -3735,14 +3735,14 @@ func (q *FakeQuerier) GetWorkspacesEligibleForTransition(ctx context.Context, no
37353735
if build.Transition == database.WorkspaceTransitionStart &&
37363736
!build.Deadline.IsZero() &&
37373737
build.Deadline.Before(now) &&
3738-
!workspace.LockedAt.Valid {
3738+
!workspace.DormantAt.Valid {
37393739
workspaces = append(workspaces, workspace)
37403740
continue
37413741
}
37423742

37433743
if build.Transition == database.WorkspaceTransitionStop &&
37443744
workspace.AutostartSchedule.Valid &&
3745-
!workspace.LockedAt.Valid {
3745+
!workspace.DormantAt.Valid {
37463746
workspaces = append(workspaces, workspace)
37473747
continue
37483748
}
@@ -3760,11 +3760,11 @@ func (q *FakeQuerier) GetWorkspacesEligibleForTransition(ctx context.Context, no
37603760
if err != nil {
37613761
return nil, xerrors.Errorf("get template by ID: %w", err)
37623762
}
3763-
if !workspace.LockedAt.Valid && template.InactivityTTL > 0 {
3763+
if !workspace.DormantAt.Valid && template.TimeTilDormant > 0 {
37643764
workspaces = append(workspaces, workspace)
37653765
continue
37663766
}
3767-
if workspace.LockedAt.Valid && template.LockedTTL > 0 {
3767+
if workspace.DormantAt.Valid && template.TimeTilDormantAutoDelete > 0 {
37683768
workspaces = append(workspaces, workspace)
37693769
continue
37703770
}
@@ -5128,8 +5128,8 @@ func (q *FakeQuerier) UpdateTemplateScheduleByID(_ context.Context, arg database
51285128
tpl.RestartRequirementDaysOfWeek = arg.RestartRequirementDaysOfWeek
51295129
tpl.RestartRequirementWeeks = arg.RestartRequirementWeeks
51305130
tpl.FailureTTL = arg.FailureTTL
5131-
tpl.InactivityTTL = arg.InactivityTTL
5132-
tpl.LockedTTL = arg.LockedTTL
5131+
tpl.TimeTilDormant = arg.TimeTilDormant
5132+
tpl.TimeTilDormantAutoDelete = arg.TimeTilDormantAutoDelete
51335133
q.templates[idx] = tpl
51345134
return nil
51355135
}
@@ -5727,12 +5727,12 @@ func (q *FakeQuerier) UpdateWorkspaceLockedDeletingAt(_ context.Context, arg dat
57275727
if workspace.ID != arg.ID {
57285728
continue
57295729
}
5730-
workspace.LockedAt = arg.LockedAt
5731-
if workspace.LockedAt.Time.IsZero() {
5730+
workspace.DormantAt = arg.DormantAt
5731+
if workspace.DormantAt.Time.IsZero() {
57325732
workspace.LastUsedAt = database.Now()
57335733
workspace.DeletingAt = sql.NullTime{}
57345734
}
5735-
if !workspace.LockedAt.Time.IsZero() {
5735+
if !workspace.DormantAt.Time.IsZero() {
57365736
var template database.TemplateTable
57375737
for _, t := range q.templates {
57385738
if t.ID == workspace.TemplateID {
@@ -5743,10 +5743,10 @@ func (q *FakeQuerier) UpdateWorkspaceLockedDeletingAt(_ context.Context, arg dat
57435743
if template.ID == uuid.Nil {
57445744
return database.Workspace{}, xerrors.Errorf("unable to find workspace template")
57455745
}
5746-
if template.LockedTTL > 0 {
5746+
if template.TimeTilDormantAutoDelete > 0 {
57475747
workspace.DeletingAt = sql.NullTime{
57485748
Valid: true,
5749-
Time: workspace.LockedAt.Time.Add(time.Duration(template.LockedTTL)),
5749+
Time: workspace.DormantAt.Time.Add(time.Duration(template.TimeTilDormantAutoDelete)),
57505750
}
57515751
}
57525752
}
@@ -5830,22 +5830,22 @@ func (q *FakeQuerier) UpdateWorkspacesLockedDeletingAtByTemplateID(_ context.Con
58305830
continue
58315831
}
58325832

5833-
if ws.LockedAt.Time.IsZero() {
5833+
if ws.DormantAt.Time.IsZero() {
58345834
continue
58355835
}
58365836

5837-
if !arg.LockedAt.IsZero() {
5838-
ws.LockedAt = sql.NullTime{
5837+
if !arg.DormantAt.IsZero() {
5838+
ws.DormantAt = sql.NullTime{
58395839
Valid: true,
5840-
Time: arg.LockedAt,
5840+
Time: arg.DormantAt,
58415841
}
58425842
}
58435843

58445844
deletingAt := sql.NullTime{
58455845
Valid: arg.LockedTtlMs > 0,
58465846
}
58475847
if arg.LockedTtlMs > 0 {
5848-
deletingAt.Time = ws.LockedAt.Time.Add(time.Duration(arg.LockedTtlMs) * time.Millisecond)
5848+
deletingAt.Time = ws.DormantAt.Time.Add(time.Duration(arg.LockedTtlMs) * time.Millisecond)
58495849
}
58505850
ws.DeletingAt = deletingAt
58515851
q.workspaces[i] = ws
@@ -6222,12 +6222,12 @@ func (q *FakeQuerier) GetAuthorizedWorkspaces(ctx context.Context, arg database.
62226222
}
62236223

62246224
// We omit locked workspaces by default.
6225-
if arg.LockedAt.IsZero() && workspace.LockedAt.Valid {
6225+
if arg.DormantAt.IsZero() && workspace.DormantAt.Valid {
62266226
continue
62276227
}
62286228

62296229
// Filter out workspaces that are locked after the timestamp.
6230-
if !arg.LockedAt.IsZero() && workspace.LockedAt.Time.Before(arg.LockedAt) {
6230+
if !arg.DormantAt.IsZero() && workspace.DormantAt.Time.Before(arg.DormantAt) {
62316231
continue
62326232
}
62336233

coderd/database/dump.sql

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
BEGIN;
2+
3+
ALTER TABLE templates RENAME COLUMN time_til_dormant TO inactivity_ttl;
4+
ALTER TABLE templates RENAME COLUMN time_til_dormant_autodelete TO locked_ttl;
5+
ALTER TABLE workspaces RENAME COLUMN dormant_at TO locked_at;
6+
7+
-- Update the template_with_users view;
8+
DROP VIEW template_with_users;
9+
-- If you need to update this view, put 'DROP VIEW template_with_users;' before this.
10+
CREATE VIEW
11+
template_with_users
12+
AS
13+
SELECT
14+
templates.*,
15+
coalesce(visible_users.avatar_url, '') AS created_by_avatar_url,
16+
coalesce(visible_users.username, '') AS created_by_username
17+
FROM
18+
templates
19+
LEFT JOIN
20+
visible_users
21+
ON
22+
templates.created_by = visible_users.id;
23+
24+
COMMENT ON VIEW template_with_users IS 'Joins in the username + avatar url of the created by user.';
25+
26+
COMMIT;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
BEGIN;
2+
ALTER TABLE templates RENAME COLUMN inactivity_ttl TO time_til_dormant;
3+
ALTER TABLE templates RENAME COLUMN locked_ttl TO time_til_dormant_autodelete;
4+
ALTER TABLE workspaces RENAME COLUMN locked_at TO dormant_at;
5+
6+
-- Update the template_with_users view;a
7+
DROP VIEW template_with_users;
8+
-- If you need to update this view, put 'DROP VIEW template_with_users;' before this.
9+
CREATE VIEW
10+
template_with_users
11+
AS
12+
SELECT
13+
templates.*,
14+
coalesce(visible_users.avatar_url, '') AS created_by_avatar_url,
15+
coalesce(visible_users.username, '') AS created_by_username
16+
FROM
17+
templates
18+
LEFT JOIN
19+
visible_users
20+
ON
21+
templates.created_by = visible_users.id;
22+
23+
COMMENT ON VIEW template_with_users IS 'Joins in the username + avatar url of the created by user.';
24+
25+
COMMIT;

coderd/database/modelmethods.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func (w Workspace) RBACObject() rbac.Object {
146146

147147
func (w Workspace) ExecutionRBAC() rbac.Object {
148148
// If a workspace is locked it cannot be accessed.
149-
if w.LockedAt.Valid {
149+
if w.DormantAt.Valid {
150150
return w.LockedRBAC()
151151
}
152152

@@ -158,7 +158,7 @@ func (w Workspace) ExecutionRBAC() rbac.Object {
158158

159159
func (w Workspace) ApplicationConnectRBAC() rbac.Object {
160160
// If a workspace is locked it cannot be accessed.
161-
if w.LockedAt.Valid {
161+
if w.DormantAt.Valid {
162162
return w.LockedRBAC()
163163
}
164164

@@ -173,7 +173,7 @@ func (w Workspace) WorkspaceBuildRBAC(transition WorkspaceTransition) rbac.Objec
173173
// However we need to allow stopping a workspace by a caller once a workspace
174174
// is locked (e.g. for autobuild). Additionally, if a user wants to delete
175175
// a locked workspace, they shouldn't have to have it unlocked first.
176-
if w.LockedAt.Valid && transition != WorkspaceTransitionStop &&
176+
if w.DormantAt.Valid && transition != WorkspaceTransitionStop &&
177177
transition != WorkspaceTransitionDelete {
178178
return w.LockedRBAC()
179179
}
@@ -355,7 +355,7 @@ func ConvertWorkspaceRows(rows []GetWorkspacesRow) []Workspace {
355355
AutostartSchedule: r.AutostartSchedule,
356356
Ttl: r.Ttl,
357357
LastUsedAt: r.LastUsedAt,
358-
LockedAt: r.LockedAt,
358+
DormantAt: r.DormantAt,
359359
DeletingAt: r.DeletingAt,
360360
}
361361
}

0 commit comments

Comments
 (0)