Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit467aca3

Browse files
committed
chore: wsbuilder to use preview parameters
Dynamic parameter validation relies on the preview parameter types.These types have more information than the database. So convertingfrom `db -> preview` is lossless. The other way around is not
1 parent2f55e29 commit467aca3

File tree

3 files changed

+66
-7
lines changed

3 files changed

+66
-7
lines changed

‎coderd/database/db2sdk/db2sdk.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/coder/coder/v2/coderd/rbac"
2222
"github.com/coder/coder/v2/coderd/rbac/policy"
2323
"github.com/coder/coder/v2/coderd/render"
24+
"github.com/coder/coder/v2/coderd/util/ptr"
2425
"github.com/coder/coder/v2/coderd/workspaceapps/appurl"
2526
"github.com/coder/coder/v2/codersdk"
2627
"github.com/coder/coder/v2/provisionersdk/proto"
@@ -96,6 +97,49 @@ func TemplateVersionParameters(params []database.TemplateVersionParameter) ([]co
9697
returnout,nil
9798
}
9899

100+
funcTemplateVersionParameterFromPreview(param previewtypes.Parameter) (codersdk.TemplateVersionParameter,error) {
101+
descriptionPlaintext,err:=render.PlaintextFromMarkdown(param.Description)
102+
iferr!=nil {
103+
return codersdk.TemplateVersionParameter{},err
104+
}
105+
106+
sdkParam:= codersdk.TemplateVersionParameter{
107+
Name:param.Name,
108+
DisplayName:param.DisplayName,
109+
Description:param.Description,
110+
DescriptionPlaintext:descriptionPlaintext,
111+
Type:string(param.Type),
112+
FormType:string(param.FormType),
113+
Mutable:param.Mutable,
114+
DefaultValue:param.DefaultValue.AsString(),
115+
Icon:param.Icon,
116+
Required:param.Required,
117+
Ephemeral:param.Ephemeral,
118+
Options:List(param.Options,TemplateVersionParameterOptionFromPreview),
119+
// Validation set after
120+
}
121+
iflen(param.Validations)>0 {
122+
validation:=param.Validations[0]
123+
sdkParam.ValidationError=validation.Error
124+
ifvalidation.Monotonic!=nil {
125+
sdkParam.ValidationMonotonic=codersdk.ValidationMonotonicOrder(*validation.Monotonic)
126+
}
127+
ifvalidation.Regex!=nil {
128+
sdkParam.ValidationRegex=*validation.Regex
129+
}
130+
ifvalidation.Min!=nil {
131+
//nolint:gosec // No other choice
132+
sdkParam.ValidationMin=ptr.Ref(int32(*validation.Min))
133+
}
134+
ifvalidation.Max!=nil {
135+
//nolint:gosec // No other choice
136+
sdkParam.ValidationMax=ptr.Ref(int32(*validation.Max))
137+
}
138+
}
139+
140+
returnsdkParam,nil
141+
}
142+
99143
funcTemplateVersionParameter(param database.TemplateVersionParameter) (codersdk.TemplateVersionParameter,error) {
100144
options,err:=templateVersionParameterOptions(param.Options)
101145
iferr!=nil {
@@ -299,6 +343,15 @@ func templateVersionParameterOptions(rawOptions json.RawMessage) ([]codersdk.Tem
299343
returnoptions,nil
300344
}
301345

346+
funcTemplateVersionParameterOptionFromPreview(option*previewtypes.ParameterOption) codersdk.TemplateVersionParameterOption {
347+
return codersdk.TemplateVersionParameterOption{
348+
Name:option.Name,
349+
Description:option.Description,
350+
Value:option.Value.AsString(),
351+
Icon:option.Icon,
352+
}
353+
}
354+
302355
funcOAuth2ProviderApp(accessURL*url.URL,dbApp database.OAuth2ProviderApp) codersdk.OAuth2ProviderApp {
303356
return codersdk.OAuth2ProviderApp{
304357
ID:dbApp.ID,

‎coderd/dynamicparameters/static.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ func (r *loader) staticRender(ctx context.Context, db database.Store) (*staticRe
2828
}
2929

3030
params:=db2sdk.List(dbTemplateVersionParameters,TemplateVersionParameter)
31+
32+
fori,param:=rangeparams {
33+
// Update the diagnostics to validate the 'default' value.
34+
// We do not have a user supplied value yet, so we use the default.
35+
params[i].Diagnostics=append(params[i].Diagnostics,previewtypes.Diagnostics(param.Valid(param.Value))...)
36+
}
3137
return&staticRender{
3238
staticParams:params,
3339
},nil
@@ -137,7 +143,5 @@ func TemplateVersionParameter(it database.TemplateVersionParameter) previewtypes
137143
// unfortunate we have to do this, but it will return the default form_type
138144
// for a given set of conditions.
139145
_,param.FormType,_=provider.ValidateFormType(provider.OptionType(param.Type),len(param.Options),param.FormType)
140-
141-
param.Diagnostics=append(param.Diagnostics,previewtypes.Diagnostics(param.Valid(param.Value))...)
142146
returnparam
143147
}

‎coderd/wsbuilder/wsbuilder.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ import (
1414
"github.com/hashicorp/hcl/v2/hclsyntax"
1515

1616
"github.com/coder/coder/v2/apiversion"
17+
"github.com/coder/coder/v2/coderd/dynamicparameters"
1718
"github.com/coder/coder/v2/coderd/rbac/policy"
1819
"github.com/coder/coder/v2/coderd/util/ptr"
1920
"github.com/coder/coder/v2/provisioner/terraform/tfparse"
2021
"github.com/coder/coder/v2/provisionersdk"
2122
sdkproto"github.com/coder/coder/v2/provisionersdk/proto"
23+
previewtypes"github.com/coder/preview/types"
2224

2325
"github.com/google/uuid"
2426
"github.com/sqlc-dev/pqtype"
@@ -71,7 +73,7 @@ type Builder struct {
7173
templateVersion*database.TemplateVersion
7274
templateVersionJob*database.ProvisionerJob
7375
terraformValues*database.TemplateVersionTerraformValue
74-
templateVersionParameters*[]database.TemplateVersionParameter
76+
templateVersionParameters*[]previewtypes.Parameter
7577
templateVersionVariables*[]database.TemplateVersionVariable
7678
templateVersionWorkspaceTags*[]database.TemplateVersionWorkspaceTag
7779
lastBuild*database.WorkspaceBuild
@@ -716,7 +718,7 @@ func (b *Builder) getParameters() (names, values []string, err error) {
716718
}
717719

718720
for_,templateVersionParameter:=rangetemplateVersionParameters {
719-
tvp,err:=db2sdk.TemplateVersionParameter(templateVersionParameter)
721+
tvp,err:=db2sdk.TemplateVersionParameterFromPreview(templateVersionParameter)
720722
iferr!=nil {
721723
returnnil,nil,BuildError{http.StatusInternalServerError,"failed to convert template version parameter",err}
722724
}
@@ -780,7 +782,7 @@ func (b *Builder) getLastBuildParameters() ([]database.WorkspaceBuildParameter,
780782
returnvalues,nil
781783
}
782784

783-
func (b*Builder)getTemplateVersionParameters() ([]database.TemplateVersionParameter,error) {
785+
func (b*Builder)getTemplateVersionParameters() ([]previewtypes.Parameter,error) {
784786
ifb.templateVersionParameters!=nil {
785787
return*b.templateVersionParameters,nil
786788
}
@@ -792,8 +794,8 @@ func (b *Builder) getTemplateVersionParameters() ([]database.TemplateVersionPara
792794
iferr!=nil&&!xerrors.Is(err,sql.ErrNoRows) {
793795
returnnil,xerrors.Errorf("get template version %s parameters: %w",tvID,err)
794796
}
795-
b.templateVersionParameters=&tvp
796-
returntvp,nil
797+
b.templateVersionParameters=ptr.Ref(db2sdk.List(tvp,dynamicparameters.TemplateVersionParameter))
798+
return*b.templateVersionParameters,nil
797799
}
798800

799801
func (b*Builder)getTemplateVersionVariables() ([]database.TemplateVersionVariable,error) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp