From d2caaf1cbe983d1ebbc12e19342ee14c249bfc6d Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Thu, 12 Oct 2017 11:18:31 +0800 Subject: [PATCH] fix bug --- pkg/kubectl/cmd/util/openapi/validation/validation.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkg/kubectl/cmd/util/openapi/validation/validation.go b/pkg/kubectl/cmd/util/openapi/validation/validation.go index dd81152f506..d474b4ddedd 100644 --- a/pkg/kubectl/cmd/util/openapi/validation/validation.go +++ b/pkg/kubectl/cmd/util/openapi/validation/validation.go @@ -56,12 +56,15 @@ func (v *SchemaValidation) ValidateBytes(data []byte) error { } func (v *SchemaValidation) validateList(object interface{}) []error { - fields := object.(map[string]interface{}) - if fields == nil { + fields, ok := object.(map[string]interface{}) + if !ok || fields == nil { return []error{errors.New("invalid object to validate")} } allErrors := []error{} + if _, ok := fields["items"].([]interface{}); !ok { + return []error{errors.New("invalid object to validate")} + } for _, item := range fields["items"].([]interface{}) { if gvk, errs := getObjectKind(item); errs != nil { allErrors = append(allErrors, errs...) @@ -101,8 +104,8 @@ func parse(data []byte) (interface{}, error) { func getObjectKind(object interface{}) (schema.GroupVersionKind, []error) { var listErrors []error - fields := object.(map[string]interface{}) - if fields == nil { + fields, ok := object.(map[string]interface{}) + if !ok || fields == nil { listErrors = append(listErrors, errors.New("invalid object to validate")) return schema.GroupVersionKind{}, listErrors }