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")}})
|
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)
|
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)
|
}, nil)
|
||||||
|
|
||||||
|
@ -198,6 +204,9 @@ func TestGenerateJobCommand(t *testing.T) {
|
||||||
- task_key: notebook_task
|
- task_key: notebook_task
|
||||||
notebook_task:
|
notebook_task:
|
||||||
notebook_path: %s
|
notebook_path: %s
|
||||||
|
parameters:
|
||||||
|
- name: empty
|
||||||
|
default: ""
|
||||||
`, filepath.Join("..", "src", "notebook.py")), string(data))
|
`, filepath.Join("..", "src", "notebook.py")), string(data))
|
||||||
|
|
||||||
data, err = os.ReadFile(filepath.Join(srcDir, "notebook.py"))
|
data, err = os.ReadFile(filepath.Join(srcDir, "notebook.py"))
|
||||||
|
|
|
@ -151,6 +151,8 @@ func isScalarValueInString(v dyn.Value) bool {
|
||||||
switch v.MustString() {
|
switch v.MustString() {
|
||||||
case "true", "false":
|
case "true", "false":
|
||||||
return true
|
return true
|
||||||
|
case "":
|
||||||
|
return true
|
||||||
default:
|
default:
|
||||||
_, err := parseNumber(v.MustString())
|
_, err := parseNumber(v.MustString())
|
||||||
return err == nil
|
return err == nil
|
||||||
|
|
Loading…
Reference in New Issue