Persisting presets defined with prebuilds to DB

Signed-off-by: Danny Kopping <danny@coder.com>
This commit is contained in:
Danny Kopping
2025-02-04 14:41:07 +00:00
parent 0ba8f89df1
commit b60f2f66c6
20 changed files with 896 additions and 650 deletions

View File

@ -5423,6 +5423,7 @@ type ClaimPrebuildRow struct {
Name string `db:"name" json:"name"`
}
// TODO: rewrite to use named CTE instead?
func (q *sqlQuerier) ClaimPrebuild(ctx context.Context, arg ClaimPrebuildParams) (ClaimPrebuildRow, error) {
row := q.db.QueryRowContext(ctx, claimPrebuild, arg.NewUserID, arg.NewName)
var i ClaimPrebuildRow
@ -5557,6 +5558,36 @@ func (q *sqlQuerier) GetTemplatePrebuildState(ctx context.Context, templateID uu
return items, nil
}
const insertPresetPrebuild = `-- name: InsertPresetPrebuild :one
INSERT INTO template_version_preset_prebuilds (id, preset_id, desired_instances, invalidate_after_secs)
VALUES ($1::uuid, $2::uuid, $3::int, $4::int)
RETURNING id, preset_id, desired_instances, invalidate_after_secs
`
type InsertPresetPrebuildParams struct {
ID uuid.UUID `db:"id" json:"id"`
PresetID uuid.UUID `db:"preset_id" json:"preset_id"`
DesiredInstances int32 `db:"desired_instances" json:"desired_instances"`
InvalidateAfterSecs int32 `db:"invalidate_after_secs" json:"invalidate_after_secs"`
}
func (q *sqlQuerier) InsertPresetPrebuild(ctx context.Context, arg InsertPresetPrebuildParams) (TemplateVersionPresetPrebuild, error) {
row := q.db.QueryRowContext(ctx, insertPresetPrebuild,
arg.ID,
arg.PresetID,
arg.DesiredInstances,
arg.InvalidateAfterSecs,
)
var i TemplateVersionPresetPrebuild
err := row.Scan(
&i.ID,
&i.PresetID,
&i.DesiredInstances,
&i.InvalidateAfterSecs,
)
return i, err
}
const getPresetByWorkspaceBuildID = `-- name: GetPresetByWorkspaceBuildID :one
SELECT
template_version_presets.id, template_version_presets.template_version_id, template_version_presets.name, template_version_presets.created_at