Skip to content

Commit e895614

Browse files
committed
Fixed generated YAML missing 'default' for empty values
1 parent b7ea53d commit e895614

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

bundle/config/generate/job.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,20 @@ func ConvertJobToValue(job *jobs.Job) (dyn.Value, error) {
2525
value["tasks"] = dyn.NewValue(tasks, []dyn.Location{{Line: jobOrder.Get("tasks")}})
2626
}
2727

28+
// We're processing job.Settings.Parameters separately to retain empty default values.
29+
if len(job.Settings.Parameters) > 0 {
30+
params := make([]dyn.Value, 0)
31+
for _, parameter := range job.Settings.Parameters {
32+
p := map[string]dyn.Value{
33+
"name": dyn.NewValue(parameter.Name, []dyn.Location{}),
34+
"default": dyn.NewValue(parameter.Default, []dyn.Location{}),
35+
}
36+
params = append(params, dyn.NewValue(p, []dyn.Location{}))
37+
}
38+
39+
value["parameters"] = dyn.NewValue(params, []dyn.Location{{Line: jobOrder.Get("parameters")}})
40+
}
41+
2842
return yamlsaver.ConvertToMapValue(job.Settings, jobOrder, []string{"format", "new_cluster", "existing_cluster_id"}, value)
2943
}
3044

cmd/bundle/generate/generate_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,12 @@ func TestGenerateJobCommand(t *testing.T) {
152152
},
153153
},
154154
},
155+
Parameters: []jobs.JobParameterDefinition{
156+
{
157+
Name: "empty",
158+
Default: "",
159+
},
160+
},
155161
},
156162
}, nil)
157163

@@ -198,6 +204,9 @@ func TestGenerateJobCommand(t *testing.T) {
198204
- task_key: notebook_task
199205
notebook_task:
200206
notebook_path: %s
207+
parameters:
208+
- name: empty
209+
default: ""
201210
`, filepath.Join("..", "src", "notebook.py")), string(data))
202211

203212
data, err = os.ReadFile(filepath.Join(srcDir, "notebook.py"))

libs/dyn/yamlsaver/saver.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ func isScalarValueInString(v dyn.Value) bool {
151151
switch v.MustString() {
152152
case "true", "false":
153153
return true
154+
case "":
155+
return true
154156
default:
155157
_, err := parseNumber(v.MustString())
156158
return err == nil

0 commit comments

Comments
 (0)