From be2448fbe74773cd7199ecd75688b99dfcfac3e9 Mon Sep 17 00:00:00 2001 From: Chuang Wang Date: Fri, 29 Apr 2022 09:21:37 -0700 Subject: [PATCH] Allow extra keys in default --- pkg/apis/pipeline/v1beta1/task_validation.go | 5 +++-- pkg/apis/pipeline/v1beta1/task_validation_test.go | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/apis/pipeline/v1beta1/task_validation.go b/pkg/apis/pipeline/v1beta1/task_validation.go index 65c2d2931c5..927ab829c57 100644 --- a/pkg/apis/pipeline/v1beta1/task_validation.go +++ b/pkg/apis/pipeline/v1beta1/task_validation.go @@ -357,9 +357,10 @@ func validateObjectKeysInDefault(defaultObject map[string]string, neededObjectKe providedObjectKeysInDefault = append(providedObjectKeysInDefault, k) } - if err := list.IsSame(providedObjectKeysInDefault, neededObjectKeysInSpec); err != nil { + missingObjectKeys := list.DiffLeft(neededObjectKeysInSpec, providedObjectKeysInDefault) + if len(missingObjectKeys) != 0 { return &apis.FieldError{ - Message: fmt.Sprintf("miss match found between keys specified in properties and keys provided in default for the parameter \"%s\"", paramName), + Message: fmt.Sprintf("Required keys %v declared in properties are not provided in default", missingObjectKeys), // Empty path is required to make the `ViaField`, … work Paths: []string{""}, } diff --git a/pkg/apis/pipeline/v1beta1/task_validation_test.go b/pkg/apis/pipeline/v1beta1/task_validation_test.go index 14afd6cefff..13881bb97ee 100644 --- a/pkg/apis/pipeline/v1beta1/task_validation_test.go +++ b/pkg/apis/pipeline/v1beta1/task_validation_test.go @@ -579,13 +579,14 @@ func TestTaskSpecValidateError(t *testing.T) { "key2": {}, }, Default: v1beta1.NewObject(map[string]string{ - "not_exist1": "var1", + "key1": "var1", + "key3": "var1", }), }}, Steps: validSteps, }, expectedError: apis.FieldError{ - Message: `miss match found between keys specified in properties and keys provided in default for the parameter "task"`, + Message: fmt.Sprintf("Required keys %v declared in properties are not provided in default", []string{"key2"}), Paths: []string{""}, }, }, {