mirror of https://github.com/databricks/cli.git
Fixed generated YAML missing 'default' for empty values (#1765)
## Changes Fixed generated YAML missing 'default' for empty values ## Tests Added unit test
This commit is contained in:
parent
c61358407f
commit
66307134c1
|
@ -25,6 +25,20 @@ func ConvertJobToValue(job *jobs.Job) (dyn.Value, error) {
|
|||
value["tasks"] = dyn.NewValue(tasks, []dyn.Location{{Line: jobOrder.Get("tasks")}})
|
||||
}
|
||||
|
||||
// We're processing job.Settings.Parameters separately to retain empty default values.
|
||||
if len(job.Settings.Parameters) > 0 {
|
||||
params := make([]dyn.Value, 0)
|
||||
for _, parameter := range job.Settings.Parameters {
|
||||
p := map[string]dyn.Value{
|
||||
"name": dyn.NewValue(parameter.Name, []dyn.Location{{Line: 0}}), // We use Line: 0 to ensure that the name goes first.
|
||||
"default": dyn.NewValue(parameter.Default, []dyn.Location{{Line: 1}}),
|
||||
}
|
||||
params = append(params, dyn.NewValue(p, []dyn.Location{}))
|
||||
}
|
||||
|
||||
value["parameters"] = dyn.NewValue(params, []dyn.Location{{Line: jobOrder.Get("parameters")}})
|
||||
}
|
||||
|
||||
return yamlsaver.ConvertToMapValue(job.Settings, jobOrder, []string{"format", "new_cluster", "existing_cluster_id"}, value)
|
||||
}
|
||||
|
||||
|
|
|
@ -152,6 +152,12 @@ func TestGenerateJobCommand(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
Parameters: []jobs.JobParameterDefinition{
|
||||
{
|
||||
Name: "empty",
|
||||
Default: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}, nil)
|
||||
|
||||
|
@ -198,6 +204,9 @@ func TestGenerateJobCommand(t *testing.T) {
|
|||
- task_key: notebook_task
|
||||
notebook_task:
|
||||
notebook_path: %s
|
||||
parameters:
|
||||
- name: empty
|
||||
default: ""
|
||||
`, filepath.Join("..", "src", "notebook.py")), string(data))
|
||||
|
||||
data, err = os.ReadFile(filepath.Join(srcDir, "notebook.py"))
|
||||
|
|
|
@ -151,6 +151,8 @@ func isScalarValueInString(v dyn.Value) bool {
|
|||
switch v.MustString() {
|
||||
case "true", "false":
|
||||
return true
|
||||
case "":
|
||||
return true
|
||||
default:
|
||||
_, err := parseNumber(v.MustString())
|
||||
return err == nil
|
||||
|
|
Loading…
Reference in New Issue