From c6d4b147307aa632c630ae4cac00195a8370801b Mon Sep 17 00:00:00 2001 From: cici37 Date: Thu, 24 Mar 2022 15:21:28 -0700 Subject: [PATCH] Update err handling --- .../pkg/apiserver/validation/validation.go | 18 +++++++++++++----- .../apiserver/validation/validation_test.go | 6 +++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation.go index 78aaca3cf80..fad044d1c6b 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation.go @@ -85,24 +85,32 @@ func ValidateCustomResource(fldPath *field.Path, customResource interface{}, val value = err.Value } max := int64(-1) - if i, ok := err.Value.(int64); ok { + if i, ok := err.Valid.(int64); ok { max = i } allErrs = append(allErrs, field.TooLongMaxLength(errPath, value, int(max))) case openapierrors.MaxItemsFailCode: - max := int64(-1) + actual := int64(-1) if i, ok := err.Value.(int64); ok { + actual = i + } + max := int64(-1) + if i, ok := err.Valid.(int64); ok { max = i } - allErrs = append(allErrs, field.TooMany(errPath, int(max), -1)) + allErrs = append(allErrs, field.TooMany(errPath, int(actual), int(max))) case openapierrors.TooManyPropertiesCode: - max := int64(-1) + actual := int64(-1) if i, ok := err.Value.(int64); ok { + actual = i + } + max := int64(-1) + if i, ok := err.Valid.(int64); ok { max = i } - allErrs = append(allErrs, field.TooMany(errPath, -1, int(max))) + allErrs = append(allErrs, field.TooMany(errPath, int(actual), int(max))) case openapierrors.InvalidTypeCode: value := interface{}("") diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation_test.go index cc6ceaf0a41..d6091bbdcd4 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/validation_test.go @@ -546,7 +546,7 @@ func TestValidateCustomResource(t *testing.T) { }, failingObjects: []failingObject{ {object: map[string]interface{}{"fieldX": map[string]interface{}{"a": true, "b": true, "c": true}}, expectErrs: []string{ - `fieldX: Too many: must have at most 2 items`, + `fieldX: Too many: 3: must have at most 2 items`, }}, }, }, @@ -561,7 +561,7 @@ func TestValidateCustomResource(t *testing.T) { }, failingObjects: []failingObject{ {object: map[string]interface{}{"fieldX": []interface{}{"a", "b", "c"}}, expectErrs: []string{ - `fieldX: Too many: 3: has too many items`, + `fieldX: Too many: 3: must have at most 2 items`, }}, }, }, @@ -576,7 +576,7 @@ func TestValidateCustomResource(t *testing.T) { }, failingObjects: []failingObject{ {object: map[string]interface{}{"fieldX": "abc"}, expectErrs: []string{ - `fieldX: Too long: value is too long`, + `fieldX: Too long: may not be longer than 2`, }}, }, },