diff --git a/pkg/scheduler/api/validation/validation.go b/pkg/scheduler/api/validation/validation.go index 37367f1946c..82d8ba43115 100644 --- a/pkg/scheduler/api/validation/validation.go +++ b/pkg/scheduler/api/validation/validation.go @@ -89,7 +89,7 @@ func validatePriorityRedeclared(priorities map[string]schedulerapi.PriorityPolic return fmt.Errorf("No priority arguments set for priority %s", priority.Name) } if existing, alreadyDeclared := priorities[priorityType]; alreadyDeclared { - return fmt.Errorf("Priority %s is redeclared (was %+v)", priority.Name, existing) + return fmt.Errorf("Priority '%s' redeclares custom priority '%s', from:'%s'", priority.Name, priorityType, existing.Name) } priorities[priorityType] = priority } @@ -109,7 +109,7 @@ func validatePredicateRedeclared(predicates map[string]schedulerapi.PredicatePol return fmt.Errorf("No priority arguments set for priority %s", predicate.Name) } if existing, alreadyDeclared := predicates[predicateType]; alreadyDeclared { - return fmt.Errorf("Priority %s is redeclared (was %+v)", predicate.Name, existing) + return fmt.Errorf("Predicate '%s' redeclares custom predicate '%s', from:'%s'", predicate.Name, predicateType, existing.Name) } predicates[predicateType] = predicate } diff --git a/pkg/scheduler/api/validation/validation_test.go b/pkg/scheduler/api/validation/validation_test.go index af2d14f303d..2f4dfc4ab8d 100644 --- a/pkg/scheduler/api/validation/validation_test.go +++ b/pkg/scheduler/api/validation/validation_test.go @@ -102,6 +102,26 @@ func TestValidatePolicy(t *testing.T) { }}, expected: errors.New("kubernetes.io/foo is an invalid extended resource name"), }, + { + name: "invalid redeclared custom predicate", + policy: api.Policy{ + Predicates: []api.PredicatePolicy{ + {Name: "customPredicate1", Argument: &api.PredicateArgument{ServiceAffinity: &api.ServiceAffinity{Labels: []string{"label1"}}}}, + {Name: "customPredicate2", Argument: &api.PredicateArgument{ServiceAffinity: &api.ServiceAffinity{Labels: []string{"label2"}}}}, + }, + }, + expected: errors.New("Predicate 'customPredicate2' redeclares custom predicate 'ServiceAffinity', from:'customPredicate1'"), + }, + { + name: "invalid redeclared custom priority", + policy: api.Policy{ + Priorities: []api.PriorityPolicy{ + {Name: "customPriority1", Weight: 1, Argument: &api.PriorityArgument{ServiceAntiAffinity: &api.ServiceAntiAffinity{Label: "label1"}}}, + {Name: "customPriority2", Weight: 1, Argument: &api.PriorityArgument{ServiceAntiAffinity: &api.ServiceAntiAffinity{Label: "label2"}}}, + }, + }, + expected: errors.New("Priority 'customPriority2' redeclares custom priority 'ServiceAntiAffinity', from:'customPriority1'"), + }, } for _, test := range tests {