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

Commit46d2751

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 parent556b095 commit46d2751

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 validation 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
@@ -672,7 +674,7 @@ func (b *Builder) getParameters() (names, values []string, err error) {
672674
}
673675

674676
for_,templateVersionParameter:=rangetemplateVersionParameters {
675-
tvp,err:=db2sdk.TemplateVersionParameter(templateVersionParameter)
677+
tvp,err:=db2sdk.TemplateVersionParameterFromPreview(templateVersionParameter)
676678
iferr!=nil {
677679
returnnil,nil,BuildError{http.StatusInternalServerError,"failed to convert template version parameter",err}
678680
}
@@ -736,7 +738,7 @@ func (b *Builder) getLastBuildParameters() ([]database.WorkspaceBuildParameter,
736738
returnvalues,nil
737739
}
738740

739-
func (b*Builder)getTemplateVersionParameters() ([]database.TemplateVersionParameter,error) {
741+
func (b*Builder)getTemplateVersionParameters() ([]previewtypes.Parameter,error) {
740742
ifb.templateVersionParameters!=nil {
741743
return*b.templateVersionParameters,nil
742744
}
@@ -748,8 +750,8 @@ func (b *Builder) getTemplateVersionParameters() ([]database.TemplateVersionPara
748750
iferr!=nil&&!xerrors.Is(err,sql.ErrNoRows) {
749751
returnnil,xerrors.Errorf("get template version %s parameters: %w",tvID,err)
750752
}
751-
b.templateVersionParameters=&tvp
752-
returntvp,nil
753+
b.templateVersionParameters=ptr.Ref(db2sdk.List(tvp,dynamicparameters.TemplateVersionParameter))
754+
return*b.templateVersionParameters,nil
753755
}
754756

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp