Skip to content

Commit ce49a55

Browse files
authored
chore: update build_reason 'autolock' -> 'dormancy' (#11074)
1 parent 8221544 commit ce49a55

File tree

8 files changed

+34
-54
lines changed

8 files changed

+34
-54
lines changed

coderd/audit/request.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ type Request[T Auditable] struct {
4747
Action database.AuditAction
4848
}
4949

50-
type BuildAuditParams[T Auditable] struct {
50+
type BackgroundAuditParams[T Auditable] struct {
5151
Audit Auditor
5252
Log slog.Logger
5353

5454
UserID uuid.UUID
55-
JobID uuid.UUID
55+
RequestID uuid.UUID
5656
Status int
5757
Action database.AuditAction
5858
OrganizationID uuid.UUID
@@ -255,9 +255,9 @@ func InitRequest[T Auditable](w http.ResponseWriter, p *RequestParams) (*Request
255255
}
256256
}
257257

258-
// WorkspaceBuildAudit creates an audit log for a workspace build.
258+
// BackgroundAudit creates an audit log for a background event.
259259
// The audit log is committed upon invocation.
260-
func WorkspaceBuildAudit[T Auditable](ctx context.Context, p *BuildAuditParams[T]) {
260+
func BackgroundAudit[T Auditable](ctx context.Context, p *BackgroundAuditParams[T]) {
261261
ip := parseIP(p.IP)
262262

263263
diff := Diff(p.Audit, p.Old, p.New)
@@ -285,7 +285,7 @@ func WorkspaceBuildAudit[T Auditable](ctx context.Context, p *BuildAuditParams[T
285285
Action: p.Action,
286286
Diff: diffRaw,
287287
StatusCode: int32(p.Status),
288-
RequestID: p.JobID,
288+
RequestID: p.RequestID,
289289
AdditionalFields: p.AdditionalFields,
290290
}
291291
err = p.Audit.Export(ctx, auditLog)

coderd/autobuild/lifecycle_executor.go

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ package autobuild
33
import (
44
"context"
55
"database/sql"
6-
"encoding/json"
76
"net/http"
8-
"strconv"
97
"sync"
108
"sync/atomic"
119
"time"
@@ -184,7 +182,6 @@ func (e *Executor) runOnce(t time.Time) Stats {
184182
return nil
185183
}
186184

187-
var build *database.WorkspaceBuild
188185
if nextTransition != "" {
189186
builder := wsbuilder.New(ws, nextTransition).
190187
SetLastWorkspaceBuildInTx(&latestBuild).
@@ -197,15 +194,15 @@ func (e *Executor) runOnce(t time.Time) Stats {
197194
builder = builder.ActiveVersion()
198195
}
199196

200-
build, job, err = builder.Build(e.ctx, tx, nil, audit.WorkspaceBuildBaggage{IP: "127.0.0.1"})
197+
_, job, err = builder.Build(e.ctx, tx, nil, audit.WorkspaceBuildBaggage{IP: "127.0.0.1"})
201198
if err != nil {
202199
return xerrors.Errorf("build workspace with transition %q: %w", nextTransition, err)
203200
}
204201
}
205202

206203
// Transition the workspace to dormant if it has breached the template's
207204
// threshold for inactivity.
208-
if reason == database.BuildReasonAutolock {
205+
if reason == database.BuildReasonDormancy {
209206
wsOld := ws
210207
ws, err = tx.UpdateWorkspaceDormantDeletingAt(e.ctx, database.UpdateWorkspaceDormantDeletingAtParams{
211208
ID: ws.ID,
@@ -216,11 +213,8 @@ func (e *Executor) runOnce(t time.Time) Stats {
216213
})
217214

218215
auditLog = &auditParams{
219-
Build: build,
220-
Job: latestJob,
221-
Reason: reason,
222-
Old: wsOld,
223-
New: ws,
216+
Old: wsOld,
217+
New: ws,
224218
}
225219
if err != nil {
226220
return xerrors.Errorf("update workspace dormant deleting at: %w", err)
@@ -328,11 +322,11 @@ func getNextTransition(
328322
case isEligibleForDormantStop(ws, templateSchedule, currentTick):
329323
// Only stop started workspaces.
330324
if latestBuild.Transition == database.WorkspaceTransitionStart {
331-
return database.WorkspaceTransitionStop, database.BuildReasonAutolock, nil
325+
return database.WorkspaceTransitionStop, database.BuildReasonDormancy, nil
332326
}
333327
// We shouldn't transition the workspace but we should still
334328
// make it dormant.
335-
return "", database.BuildReasonAutolock, nil
329+
return "", database.BuildReasonDormancy, nil
336330

337331
case isEligibleForDelete(ws, templateSchedule, latestBuild, latestJob, currentTick):
338332
return database.WorkspaceTransitionDelete, database.BuildReasonAutodelete, nil
@@ -462,45 +456,29 @@ func isEligibleForFailedStop(build database.WorkspaceBuild, job database.Provisi
462456
}
463457

464458
type auditParams struct {
465-
Build *database.WorkspaceBuild
466-
Job database.ProvisionerJob
467-
Reason database.BuildReason
468459
Old database.Workspace
469460
New database.Workspace
470461
Success bool
471462
}
472463

473464
func auditBuild(ctx context.Context, log slog.Logger, auditor audit.Auditor, params auditParams) {
474-
fields := audit.AdditionalFields{
475-
WorkspaceName: params.New.Name,
476-
BuildReason: params.Reason,
477-
}
478-
479-
if params.Build != nil {
480-
fields.BuildNumber = strconv.FormatInt(int64(params.Build.BuildNumber), 10)
481-
}
482-
483-
raw, err := json.Marshal(fields)
484-
if err != nil {
485-
log.Error(ctx, "marshal resource info for successful job", slog.Error(err))
486-
}
487-
488465
status := http.StatusInternalServerError
489466
if params.Success {
490467
status = http.StatusOK
491468
}
492469

493-
audit.WorkspaceBuildAudit(ctx, &audit.BuildAuditParams[database.Workspace]{
494-
Audit: auditor,
495-
Log: log,
496-
UserID: params.Job.InitiatorID,
497-
OrganizationID: params.New.OrganizationID,
498-
JobID: params.Job.ID,
499-
Action: database.AuditActionWrite,
500-
Old: params.Old,
501-
New: params.New,
502-
Status: status,
503-
AdditionalFields: raw,
470+
audit.BackgroundAudit(ctx, &audit.BackgroundAuditParams[database.Workspace]{
471+
Audit: auditor,
472+
Log: log,
473+
UserID: params.New.OwnerID,
474+
OrganizationID: params.New.OrganizationID,
475+
// Right now there's no request associated with an autobuild
476+
// operation.
477+
RequestID: uuid.Nil,
478+
Action: database.AuditActionWrite,
479+
Old: params.Old,
480+
New: params.New,
481+
Status: status,
504482
})
505483
}
506484

coderd/database/dump.sql

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TYPE build_reason RENAME VALUE 'dormancy' TO 'autolock';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TYPE build_reason RENAME VALUE 'autolock' TO 'dormancy';

coderd/database/models.go

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

coderd/provisionerdserver/provisionerdserver.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -914,12 +914,12 @@ func (s *server) FailJob(ctx context.Context, failJob *proto.FailedJob) (*proto.
914914

915915
bag := audit.BaggageFromContext(ctx)
916916

917-
audit.WorkspaceBuildAudit(ctx, &audit.BuildAuditParams[database.WorkspaceBuild]{
917+
audit.BackgroundAudit(ctx, &audit.BackgroundAuditParams[database.WorkspaceBuild]{
918918
Audit: *auditor,
919919
Log: s.Logger,
920920
UserID: job.InitiatorID,
921921
OrganizationID: workspace.OrganizationID,
922-
JobID: job.ID,
922+
RequestID: job.ID,
923923
IP: bag.IP,
924924
Action: auditAction,
925925
Old: previousBuild,
@@ -1271,12 +1271,12 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob)
12711271

12721272
bag := audit.BaggageFromContext(ctx)
12731273

1274-
audit.WorkspaceBuildAudit(ctx, &audit.BuildAuditParams[database.WorkspaceBuild]{
1274+
audit.BackgroundAudit(ctx, &audit.BackgroundAuditParams[database.WorkspaceBuild]{
12751275
Audit: *auditor,
12761276
Log: s.Logger,
12771277
UserID: job.InitiatorID,
12781278
OrganizationID: workspace.OrganizationID,
1279-
JobID: job.ID,
1279+
RequestID: job.ID,
12801280
IP: bag.IP,
12811281
Action: auditAction,
12821282
Old: previousBuild,

enterprise/coderd/workspaces_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ func TestWorkspaceAutobuild(t *testing.T) {
308308
err := json.Unmarshal(alog.AdditionalFields, &fields)
309309
require.NoError(t, err)
310310
require.Equal(t, ws.Name, fields.WorkspaceName)
311-
require.Equal(t, database.BuildReasonAutolock, fields.BuildReason)
311+
require.Equal(t, database.BuildReasonDormancy, fields.BuildReason)
312312

313313
default:
314314
t.Fatalf("unexpected audit log (%+v)", alog)

0 commit comments

Comments
 (0)