Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f84fbf6

Browse files
committed
Insert template variables
1 parent c194087 commit f84fbf6

File tree

8 files changed

+307
-100
lines changed

8 files changed

+307
-100
lines changed

coderd/database/dbfake/databasefake.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ type data struct {
114114
replicas []database.Replica
115115
templateVersions []database.TemplateVersion
116116
templateVersionParameters []database.TemplateVersionParameter
117+
templateVersionVariables []database.TemplateVersionVariable
117118
templates []database.Template
118119
workspaceAgents []database.WorkspaceAgent
119120
workspaceApps []database.WorkspaceApp
@@ -1797,6 +1798,20 @@ func (q *fakeQuerier) GetTemplateVersionParameters(_ context.Context, templateVe
17971798
return parameters, nil
17981799
}
17991800

1801+
func (q *fakeQuerier) GetTemplateVersionVariables(_ context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) {
1802+
q.mutex.RLock()
1803+
defer q.mutex.RUnlock()
1804+
1805+
variables := make([]database.TemplateVersionVariable, 0)
1806+
for _, variable := range q.templateVersionVariables {
1807+
if variable.TemplateVersionID != templateVersionID {
1808+
continue
1809+
}
1810+
variables = append(variables, variable)
1811+
}
1812+
return variables, nil
1813+
}
1814+
18001815
func (q *fakeQuerier) GetTemplateVersionByID(_ context.Context, templateVersionID uuid.UUID) (database.TemplateVersion, error) {
18011816
q.mutex.RLock()
18021817
defer q.mutex.RUnlock()
@@ -2591,6 +2606,29 @@ func (q *fakeQuerier) InsertTemplateVersionParameter(_ context.Context, arg data
25912606
return param, nil
25922607
}
25932608

2609+
func (q *fakeQuerier) InsertTemplateVersionVariable(_ context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) {
2610+
if err := validateDatabaseType(arg); err != nil {
2611+
return database.TemplateVersionVariable{}, err
2612+
}
2613+
2614+
q.mutex.Lock()
2615+
defer q.mutex.Unlock()
2616+
2617+
//nolint:gosimple
2618+
variable := database.TemplateVersionVariable{
2619+
TemplateVersionID: arg.TemplateVersionID,
2620+
Name: arg.Name,
2621+
Description: arg.Description,
2622+
Type: arg.Type,
2623+
Value: arg.Value,
2624+
DefaultValue: arg.DefaultValue,
2625+
Required: arg.Required,
2626+
Sensitive: arg.Sensitive,
2627+
}
2628+
q.templateVersionVariables = append(q.templateVersionVariables, variable)
2629+
return variable, nil
2630+
}
2631+
25942632
func (q *fakeQuerier) InsertProvisionerJobLogs(_ context.Context, arg database.InsertProvisionerJobLogsParams) ([]database.ProvisionerJobLog, error) {
25952633
if err := validateDatabaseType(arg); err != nil {
25962634
return nil, err

coderd/database/querier.go

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

coderd/database/queries.sql.go

Lines changed: 97 additions & 0 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+
-- name: InsertTemplateVersionVariable :one
2+
INSERT INTO
3+
template_version_variables (
4+
template_version_id,
5+
name,
6+
description,
7+
type,
8+
value,
9+
default_value,
10+
required,
11+
sensitive
12+
)
13+
VALUES
14+
(
15+
$1,
16+
$2,
17+
$3,
18+
$4,
19+
$5,
20+
$6,
21+
$7,
22+
$8
23+
) RETURNING *;
24+
25+
-- name: GetTemplateVersionVariables :many
26+
SELECT * FROM template_version_variables WHERE template_version_id = $1;

coderd/provisionerdserver/provisionerdserver.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,31 @@ func (server *Server) UpdateJob(ctx context.Context, request *proto.UpdateJobReq
379379
}
380380
}
381381

382+
if len(request.TemplateVariables) > 0 {
383+
templateVersion, err := server.Database.GetTemplateVersionByJobID(ctx, job.ID)
384+
if err != nil {
385+
return nil, xerrors.Errorf("get template version by job id: %w", err)
386+
}
387+
388+
for _, templateVariable := range request.TemplateVariables {
389+
server.Logger.Debug(ctx, "insert template variable", slog.F("template_version_id", templateVersion.ID), slog.F("template_variable", templateVariable))
390+
391+
_, err = server.Database.InsertTemplateVersionVariable(ctx, database.InsertTemplateVersionVariableParams{
392+
TemplateVersionID: templateVersion.ID,
393+
Name: templateVariable.Name,
394+
Description: templateVariable.Description,
395+
Type: templateVariable.Type,
396+
DefaultValue: templateVariable.DefaultValue,
397+
Required: templateVariable.Required,
398+
Sensitive: templateVariable.Sensitive,
399+
// FIXME value
400+
})
401+
if err != nil {
402+
return nil, xerrors.Errorf("insert parameter schema: %w", err)
403+
}
404+
}
405+
}
406+
382407
if len(request.ParameterSchemas) > 0 {
383408
for index, protoParameter := range request.ParameterSchemas {
384409
validationTypeSystem, err := convertValidationTypeSystem(protoParameter.ValidationTypeSystem)

0 commit comments

Comments
 (0)