mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
Basic implementation of preset ID tracking
Signed-off-by: Danny Kopping <danny@coder.com> # Conflicts: # site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx
This commit is contained in:
4
coderd/apidoc/docs.go
generated
4
coderd/apidoc/docs.go
generated
@ -10988,6 +10988,10 @@ const docTemplate = `{
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"template_version_preset_id": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"ttl_ms": {
|
||||
"type": "integer"
|
||||
}
|
||||
|
4
coderd/apidoc/swagger.json
generated
4
coderd/apidoc/swagger.json
generated
@ -9783,6 +9783,10 @@
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"template_version_preset_id": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"ttl_ms": {
|
||||
"type": "integer"
|
||||
}
|
||||
|
@ -698,6 +698,9 @@ func createWorkspace(
|
||||
if req.TemplateVersionID != uuid.Nil {
|
||||
builder = builder.VersionID(req.TemplateVersionID)
|
||||
}
|
||||
if req.TemplateVersionPresetID != uuid.Nil {
|
||||
builder = builder.TemplateVersionPresetID(req.TemplateVersionPresetID)
|
||||
}
|
||||
|
||||
if claimedWorkspace != nil {
|
||||
builder = builder.MarkPrebuildClaimedBy(owner.ID)
|
||||
|
@ -51,9 +51,10 @@ type Builder struct {
|
||||
logLevel string
|
||||
deploymentValues *codersdk.DeploymentValues
|
||||
|
||||
richParameterValues []codersdk.WorkspaceBuildParameter
|
||||
initiator uuid.UUID
|
||||
reason database.BuildReason
|
||||
richParameterValues []codersdk.WorkspaceBuildParameter
|
||||
initiator uuid.UUID
|
||||
reason database.BuildReason
|
||||
templateVersionPresetID uuid.UUID
|
||||
|
||||
// used during build, makes function arguments less verbose
|
||||
ctx context.Context
|
||||
@ -215,6 +216,12 @@ func (b Builder) SetLastWorkspaceBuildJobInTx(job *database.ProvisionerJob) Buil
|
||||
return b
|
||||
}
|
||||
|
||||
func (b Builder) TemplateVersionPresetID(id uuid.UUID) Builder {
|
||||
// nolint: revive
|
||||
b.templateVersionPresetID = id
|
||||
return b
|
||||
}
|
||||
|
||||
type BuildError struct {
|
||||
// Status is a suitable HTTP status code
|
||||
Status int
|
||||
@ -389,20 +396,23 @@ func (b *Builder) buildTx(authFunc func(action policy.Action, object rbac.Object
|
||||
var workspaceBuild database.WorkspaceBuild
|
||||
err = b.store.InTx(func(store database.Store) error {
|
||||
err = store.InsertWorkspaceBuild(b.ctx, database.InsertWorkspaceBuildParams{
|
||||
ID: workspaceBuildID,
|
||||
CreatedAt: now,
|
||||
UpdatedAt: now,
|
||||
WorkspaceID: b.workspace.ID,
|
||||
TemplateVersionID: templateVersionID,
|
||||
BuildNumber: buildNum,
|
||||
ProvisionerState: state,
|
||||
InitiatorID: b.initiator,
|
||||
Transition: b.trans,
|
||||
JobID: provisionerJob.ID,
|
||||
Reason: b.reason,
|
||||
Deadline: time.Time{}, // set by provisioner upon completion
|
||||
MaxDeadline: time.Time{}, // set by provisioner upon completion
|
||||
TemplateVersionPresetID: uuid.NullUUID{}, // TODO (sasswart): add this in from the caller
|
||||
ID: workspaceBuildID,
|
||||
CreatedAt: now,
|
||||
UpdatedAt: now,
|
||||
WorkspaceID: b.workspace.ID,
|
||||
TemplateVersionID: templateVersionID,
|
||||
BuildNumber: buildNum,
|
||||
ProvisionerState: state,
|
||||
InitiatorID: b.initiator,
|
||||
Transition: b.trans,
|
||||
JobID: provisionerJob.ID,
|
||||
Reason: b.reason,
|
||||
Deadline: time.Time{}, // set by provisioner upon completion
|
||||
MaxDeadline: time.Time{}, // set by provisioner upon completion
|
||||
TemplateVersionPresetID: uuid.NullUUID{
|
||||
UUID: b.templateVersionPresetID,
|
||||
Valid: b.templateVersionPresetID != uuid.Nil,
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
code := http.StatusInternalServerError
|
||||
|
Reference in New Issue
Block a user