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

Skip to content

Commit a7366a8

Browse files
authored
feat!: drop support for legacy parameters (coder#7663)
1 parent 2b63492 commit a7366a8

File tree

106 files changed

+1166
-8566
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+1166
-8566
lines changed

cli/cliui/parameter.go

-52
Original file line numberDiff line numberDiff line change
@@ -6,61 +6,9 @@ import (
66
"strings"
77

88
"github.com/coder/coder/cli/clibase"
9-
"github.com/coder/coder/coderd/parameter"
109
"github.com/coder/coder/codersdk"
1110
)
1211

13-
func ParameterSchema(inv *clibase.Invocation, parameterSchema codersdk.ParameterSchema) (string, error) {
14-
_, _ = fmt.Fprintln(inv.Stdout, Styles.Bold.Render("var."+parameterSchema.Name))
15-
if parameterSchema.Description != "" {
16-
_, _ = fmt.Fprintln(inv.Stdout, " "+strings.TrimSpace(strings.Join(strings.Split(parameterSchema.Description, "\n"), "\n "))+"\n")
17-
}
18-
19-
var err error
20-
var options []string
21-
if parameterSchema.ValidationCondition != "" {
22-
options, _, err = parameter.Contains(parameterSchema.ValidationCondition)
23-
if err != nil {
24-
return "", err
25-
}
26-
}
27-
var value string
28-
if len(options) > 0 {
29-
// Move the cursor up a single line for nicer display!
30-
_, _ = fmt.Fprint(inv.Stdout, "\033[1A")
31-
value, err = Select(inv, SelectOptions{
32-
Options: options,
33-
Default: parameterSchema.DefaultSourceValue,
34-
HideSearch: true,
35-
})
36-
if err == nil {
37-
_, _ = fmt.Fprintln(inv.Stdout)
38-
_, _ = fmt.Fprintln(inv.Stdout, " "+Styles.Prompt.String()+Styles.Field.Render(value))
39-
}
40-
} else {
41-
text := "Enter a value"
42-
if parameterSchema.DefaultSourceValue != "" {
43-
text += fmt.Sprintf(" (default: %q)", parameterSchema.DefaultSourceValue)
44-
}
45-
text += ":"
46-
47-
value, err = Prompt(inv, PromptOptions{
48-
Text: Styles.Bold.Render(text),
49-
})
50-
value = strings.TrimSpace(value)
51-
}
52-
if err != nil {
53-
return "", err
54-
}
55-
56-
// If they didn't specify anything, use the default value if set.
57-
if len(options) == 0 && value == "" {
58-
value = parameterSchema.DefaultSourceValue
59-
}
60-
61-
return value, nil
62-
}
63-
6412
func RichParameter(inv *clibase.Invocation, templateVersionParameter codersdk.TemplateVersionParameter) (string, error) {
6513
label := templateVersionParameter.Name
6614
if templateVersionParameter.DisplayName != "" {

cli/create.go

+3-90
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818

1919
func (r *RootCmd) create() *clibase.Cmd {
2020
var (
21-
parameterFile string
2221
richParameterFile string
2322
templateName string
2423
startAt string
@@ -122,8 +121,6 @@ func (r *RootCmd) create() *clibase.Cmd {
122121

123122
buildParams, err := prepWorkspaceBuild(inv, client, prepWorkspaceBuildArgs{
124123
Template: template,
125-
ExistingParams: []codersdk.Parameter{},
126-
ParameterFile: parameterFile,
127124
RichParameterFile: richParameterFile,
128125
NewWorkspaceName: workspaceName,
129126
})
@@ -151,7 +148,6 @@ func (r *RootCmd) create() *clibase.Cmd {
151148
Name: workspaceName,
152149
AutostartSchedule: schedSpec,
153150
TTLMillis: ttlMillis,
154-
ParameterValues: buildParams.parameters,
155151
RichParameterValues: buildParams.richParameters,
156152
})
157153
if err != nil {
@@ -175,12 +171,6 @@ func (r *RootCmd) create() *clibase.Cmd {
175171
Description: "Specify a template name.",
176172
Value: clibase.StringOf(&templateName),
177173
},
178-
clibase.Option{
179-
Flag: "parameter-file",
180-
Env: "CODER_PARAMETER_FILE",
181-
Description: "Specify a file path with parameter values.",
182-
Value: clibase.StringOf(&parameterFile),
183-
},
184174
clibase.Option{
185175
Flag: "rich-parameter-file",
186176
Env: "CODER_RICH_PARAMETER_FILE",
@@ -207,8 +197,6 @@ func (r *RootCmd) create() *clibase.Cmd {
207197

208198
type prepWorkspaceBuildArgs struct {
209199
Template codersdk.Template
210-
ExistingParams []codersdk.Parameter
211-
ParameterFile string
212200
ExistingRichParams []codersdk.WorkspaceBuildParameter
213201
RichParameterFile string
214202
NewWorkspaceName string
@@ -218,8 +206,6 @@ type prepWorkspaceBuildArgs struct {
218206
}
219207

220208
type buildParameters struct {
221-
// Parameters contains legacy parameters stored in /parameters.
222-
parameters []codersdk.CreateParameterRequest
223209
// Rich parameters stores values for build parameters annotated with description, icon, type, etc.
224210
richParameters []codersdk.WorkspaceBuildParameter
225211
}
@@ -229,90 +215,19 @@ type buildParameters struct {
229215
func prepWorkspaceBuild(inv *clibase.Invocation, client *codersdk.Client, args prepWorkspaceBuildArgs) (*buildParameters, error) {
230216
ctx := inv.Context()
231217

232-
var useRichParameters bool
233-
if len(args.ExistingRichParams) > 0 && len(args.RichParameterFile) > 0 {
234-
useRichParameters = true
235-
}
236-
237-
var useLegacyParameters bool
238-
if len(args.ExistingParams) > 0 || len(args.ParameterFile) > 0 {
239-
useLegacyParameters = true
240-
}
241-
242-
if useRichParameters && useLegacyParameters {
243-
return nil, xerrors.Errorf("Rich parameters can't be used together with legacy parameters.")
244-
}
245-
246218
templateVersion, err := client.TemplateVersion(ctx, args.Template.ActiveVersionID)
247219
if err != nil {
248220
return nil, err
249221
}
250222

251-
// Legacy parameters
252-
parameterSchemas, err := client.TemplateVersionSchema(ctx, templateVersion.ID)
253-
if err != nil {
254-
return nil, err
255-
}
256-
257-
// parameterMapFromFile can be nil if parameter file is not specified
258-
var parameterMapFromFile map[string]string
259-
useParamFile := false
260-
if args.ParameterFile != "" {
261-
useParamFile = true
262-
_, _ = fmt.Fprintln(inv.Stdout, cliui.Styles.Paragraph.Render("Attempting to read the variables from the parameter file.")+"\r\n")
263-
parameterMapFromFile, err = createParameterMapFromFile(args.ParameterFile)
264-
if err != nil {
265-
return nil, err
266-
}
267-
}
268-
disclaimerPrinted := false
269-
legacyParameters := make([]codersdk.CreateParameterRequest, 0)
270-
PromptParamLoop:
271-
for _, parameterSchema := range parameterSchemas {
272-
if !parameterSchema.AllowOverrideSource {
273-
continue
274-
}
275-
if !disclaimerPrinted {
276-
_, _ = fmt.Fprintln(inv.Stdout, cliui.Styles.Paragraph.Render("This template has customizable parameters. Values can be changed after create, but may have unintended side effects (like data loss).")+"\r\n")
277-
disclaimerPrinted = true
278-
}
279-
280-
// Param file is all or nothing
281-
if !useParamFile {
282-
for _, e := range args.ExistingParams {
283-
if e.Name == parameterSchema.Name {
284-
// If the param already exists, we do not need to prompt it again.
285-
// The workspace scope will reuse params for each build.
286-
continue PromptParamLoop
287-
}
288-
}
289-
}
290-
291-
parameterValue, err := getParameterValueFromMapOrInput(inv, parameterMapFromFile, parameterSchema)
292-
if err != nil {
293-
return nil, err
294-
}
295-
296-
legacyParameters = append(legacyParameters, codersdk.CreateParameterRequest{
297-
Name: parameterSchema.Name,
298-
SourceValue: parameterValue,
299-
SourceScheme: codersdk.ParameterSourceSchemeData,
300-
DestinationScheme: parameterSchema.DefaultDestinationScheme,
301-
})
302-
}
303-
304-
if disclaimerPrinted {
305-
_, _ = fmt.Fprintln(inv.Stdout)
306-
}
307-
308223
// Rich parameters
309224
templateVersionParameters, err := client.TemplateVersionRichParameters(inv.Context(), templateVersion.ID)
310225
if err != nil {
311226
return nil, xerrors.Errorf("get template version rich parameters: %w", err)
312227
}
313228

314-
parameterMapFromFile = map[string]string{}
315-
useParamFile = false
229+
parameterMapFromFile := map[string]string{}
230+
useParamFile := false
316231
if args.RichParameterFile != "" {
317232
useParamFile = true
318233
_, _ = fmt.Fprintln(inv.Stdout, cliui.Styles.Paragraph.Render("Attempting to read the variables from the rich parameter file.")+"\r\n")
@@ -321,7 +236,7 @@ PromptParamLoop:
321236
return nil, err
322237
}
323238
}
324-
disclaimerPrinted = false
239+
disclaimerPrinted := false
325240
richParameters := make([]codersdk.WorkspaceBuildParameter, 0)
326241
PromptRichParamLoop:
327242
for _, templateVersionParameter := range templateVersionParameters {
@@ -379,7 +294,6 @@ PromptRichParamLoop:
379294
// Run a dry-run with the given parameters to check correctness
380295
dryRun, err := client.CreateTemplateVersionDryRun(inv.Context(), templateVersion.ID, codersdk.CreateTemplateVersionDryRunRequest{
381296
WorkspaceName: args.NewWorkspaceName,
382-
ParameterValues: legacyParameters,
383297
RichParameterValues: richParameters,
384298
})
385299
if err != nil {
@@ -421,7 +335,6 @@ PromptRichParamLoop:
421335
}
422336

423337
return &buildParameters{
424-
parameters: legacyParameters,
425338
richParameters: richParameters,
426339
}, nil
427340
}

0 commit comments

Comments
 (0)