Better messages

This commit is contained in:
Gleb Kanterov 2024-09-25 10:26:17 +02:00
parent d3032c493c
commit 3a3569e1a7
No known key found for this signature in database
GPG Key ID: 4D87C640DBD00176
2 changed files with 13 additions and 7 deletions

View File

@ -83,11 +83,15 @@ func validateJobTask(rb bundle.ReadOnlyBundle, task jobs.Task, taskPath dyn.Path
// notebook tasks without cluster spec will use notebook environment // notebook tasks without cluster spec will use notebook environment
} else { } else {
// path might be not very helpful, adding user-specified task key clarifies the context // path might be not very helpful, adding user-specified task key clarifies the context
detail := fmt.Sprintf("Task %q has a task type that requires a cluster or environment, but neither is specified", task.TaskKey) detail := fmt.Sprintf(
"Task %q requires a cluster or an environment to run. Specify one of the following fields: %s",
task.TaskKey,
strings.Join(unspecified, ", "),
)
diags = diags.Append(diag.Diagnostic{ diags = diags.Append(diag.Diagnostic{
Severity: diag.Error, Severity: diag.Error,
Summary: fmt.Sprintf("One of the following fields must be set: %s", strings.Join(unspecified, ", ")), Summary: fmt.Sprintf("Missing required cluster or environment settings"),
Detail: detail, Detail: detail,
Locations: rb.Config().GetLocations(taskPath.String()), Locations: rb.Config().GetLocations(taskPath.String()),
Paths: []dyn.Path{taskPath}, Paths: []dyn.Path{taskPath},

View File

@ -13,7 +13,7 @@ import (
) )
func TestJobTaskClusterSpec(t *testing.T) { func TestJobTaskClusterSpec(t *testing.T) {
expectedSummary := "One of the following fields must be set: job_cluster_key, environment_key, existing_cluster_id, new_cluster" expectedSummary := "Missing required cluster or environment settings"
type testCase struct { type testCase struct {
name string name string
@ -143,8 +143,9 @@ func TestJobTaskClusterSpec(t *testing.T) {
PythonWheelTask: &jobs.PythonWheelTask{}, PythonWheelTask: &jobs.PythonWheelTask{},
TaskKey: "my_task", TaskKey: "my_task",
}, },
errorPath: "resources.jobs.job1.tasks[0]", errorPath: "resources.jobs.job1.tasks[0]",
errorDetail: "Task \"my_task\" has a task type that requires a cluster or environment, but neither is specified", errorDetail: "Task \"my_task\" requires a cluster or an environment to run. Specify one of the " +
"following fields: job_cluster_key, environment_key, existing_cluster_id, new_cluster",
errorSummary: expectedSummary, errorSummary: expectedSummary,
}, },
{ {
@ -157,8 +158,9 @@ func TestJobTaskClusterSpec(t *testing.T) {
}, },
}, },
}, },
errorPath: "resources.jobs.job1.tasks[0].for_each_task.task", errorPath: "resources.jobs.job1.tasks[0].for_each_task.task",
errorDetail: "Task \"my_task\" has a task type that requires a cluster or environment, but neither is specified", errorDetail: "Task \"my_task\" requires a cluster or an environment to run. Specify one of the " +
"following fields: job_cluster_key, environment_key, existing_cluster_id, new_cluster",
errorSummary: expectedSummary, errorSummary: expectedSummary,
}, },
} }