Skip to content

Commit 7e6a7d2

Browse files
committed
Basic implementation of preset ID tracking
Signed-off-by: Danny Kopping <danny@coder.com> # Conflicts: # site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx
1 parent 1f6be5e commit 7e6a7d2

File tree

10 files changed

+292
-299
lines changed

10 files changed

+292
-299
lines changed

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

coderd/workspaces.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,9 @@ func createWorkspace(
698698
if req.TemplateVersionID != uuid.Nil {
699699
builder = builder.VersionID(req.TemplateVersionID)
700700
}
701+
if req.TemplateVersionPresetID != uuid.Nil {
702+
builder = builder.TemplateVersionPresetID(req.TemplateVersionPresetID)
703+
}
701704

702705
if claimedWorkspace != nil {
703706
builder = builder.MarkPrebuildClaimedBy(owner.ID)

coderd/wsbuilder/wsbuilder.go

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,10 @@ type Builder struct {
5151
logLevel string
5252
deploymentValues *codersdk.DeploymentValues
5353

54-
richParameterValues []codersdk.WorkspaceBuildParameter
55-
initiator uuid.UUID
56-
reason database.BuildReason
54+
richParameterValues []codersdk.WorkspaceBuildParameter
55+
initiator uuid.UUID
56+
reason database.BuildReason
57+
templateVersionPresetID uuid.UUID
5758

5859
// used during build, makes function arguments less verbose
5960
ctx context.Context
@@ -215,6 +216,12 @@ func (b Builder) SetLastWorkspaceBuildJobInTx(job *database.ProvisionerJob) Buil
215216
return b
216217
}
217218

219+
func (b Builder) TemplateVersionPresetID(id uuid.UUID) Builder {
220+
// nolint: revive
221+
b.templateVersionPresetID = id
222+
return b
223+
}
224+
218225
type BuildError struct {
219226
// Status is a suitable HTTP status code
220227
Status int
@@ -389,20 +396,23 @@ func (b *Builder) buildTx(authFunc func(action policy.Action, object rbac.Object
389396
var workspaceBuild database.WorkspaceBuild
390397
err = b.store.InTx(func(store database.Store) error {
391398
err = store.InsertWorkspaceBuild(b.ctx, database.InsertWorkspaceBuildParams{
392-
ID: workspaceBuildID,
393-
CreatedAt: now,
394-
UpdatedAt: now,
395-
WorkspaceID: b.workspace.ID,
396-
TemplateVersionID: templateVersionID,
397-
BuildNumber: buildNum,
398-
ProvisionerState: state,
399-
InitiatorID: b.initiator,
400-
Transition: b.trans,
401-
JobID: provisionerJob.ID,
402-
Reason: b.reason,
403-
Deadline: time.Time{}, // set by provisioner upon completion
404-
MaxDeadline: time.Time{}, // set by provisioner upon completion
405-
TemplateVersionPresetID: uuid.NullUUID{}, // TODO (sasswart): add this in from the caller
399+
ID: workspaceBuildID,
400+
CreatedAt: now,
401+
UpdatedAt: now,
402+
WorkspaceID: b.workspace.ID,
403+
TemplateVersionID: templateVersionID,
404+
BuildNumber: buildNum,
405+
ProvisionerState: state,
406+
InitiatorID: b.initiator,
407+
Transition: b.trans,
408+
JobID: provisionerJob.ID,
409+
Reason: b.reason,
410+
Deadline: time.Time{}, // set by provisioner upon completion
411+
MaxDeadline: time.Time{}, // set by provisioner upon completion
412+
TemplateVersionPresetID: uuid.NullUUID{
413+
UUID: b.templateVersionPresetID,
414+
Valid: b.templateVersionPresetID != uuid.Nil,
415+
},
406416
})
407417
if err != nil {
408418
code := http.StatusInternalServerError

codersdk/organizations.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ type CreateWorkspaceRequest struct {
209209
// during the initial provision.
210210
RichParameterValues []WorkspaceBuildParameter `json:"rich_parameter_values,omitempty"`
211211
AutomaticUpdates AutomaticUpdates `json:"automatic_updates,omitempty"`
212+
TemplateVersionPresetID uuid.UUID `json:"template_version_preset_id,omitempty" format:"uuid"`
212213
ClaimPrebuildIfAvailable bool `json:"claim_prebuild_if_available,omitempty"`
213214
}
214215

docs/reference/api/schemas.md

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

docs/reference/api/workspaces.md

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

site/src/api/typesGenerated.ts

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

0 commit comments

Comments
 (0)