mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
kubetcl create --validate crashes when no apiVersion or kind is provided
This commit is contained in:
parent
0f1c4c25c3
commit
37abe11f8a
@ -77,9 +77,15 @@ func (s *SwaggerSchema) ValidateBytes(data []byte) error {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("error in unmarshaling data %s", string(data))
|
return fmt.Errorf("error in unmarshaling data %s", string(data))
|
||||||
}
|
}
|
||||||
apiVersion := fields["apiVersion"].(string)
|
apiVersion := fields["apiVersion"]
|
||||||
kind := fields["kind"].(string)
|
if apiVersion == nil {
|
||||||
return s.ValidateObject(obj, apiVersion, "", apiVersion+"."+kind)
|
fmt.Errorf("apiVersion not set")
|
||||||
|
}
|
||||||
|
kind := fields["kind"]
|
||||||
|
if kind == nil {
|
||||||
|
fmt.Errorf("kind not set")
|
||||||
|
}
|
||||||
|
return s.ValidateObject(obj, apiVersion.(string), "", apiVersion.(string)+"."+kind.(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SwaggerSchema) ValidateObject(obj interface{}, apiVersion, fieldName, typeName string) error {
|
func (s *SwaggerSchema) ValidateObject(obj interface{}, apiVersion, fieldName, typeName string) error {
|
||||||
|
@ -266,7 +266,7 @@ type clientSwaggerSchema struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *clientSwaggerSchema) ValidateBytes(data []byte) error {
|
func (c *clientSwaggerSchema) ValidateBytes(data []byte) error {
|
||||||
version, _, err := c.t.DataVersionAndKind(data)
|
version, _, err := runtime.UnstructuredJSONScheme.DataVersionAndKind(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ func (v *PathVisitor) Visit(fn VisitorFunc) error {
|
|||||||
return fmt.Errorf("unable to read %q: %v", v.Path, err)
|
return fmt.Errorf("unable to read %q: %v", v.Path, err)
|
||||||
}
|
}
|
||||||
if err := ValidateSchema(data, v.Schema); err != nil {
|
if err := ValidateSchema(data, v.Schema); err != nil {
|
||||||
return err
|
return fmt.Errorf("error validating %q: %v", v.Path, err)
|
||||||
}
|
}
|
||||||
info, err := v.Mapper.InfoForData(data, v.Path)
|
info, err := v.Mapper.InfoForData(data, v.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -276,7 +276,7 @@ func (v *DirectoryVisitor) Visit(fn VisitorFunc) error {
|
|||||||
return fmt.Errorf("unable to read %q: %v", path, err)
|
return fmt.Errorf("unable to read %q: %v", path, err)
|
||||||
}
|
}
|
||||||
if err := ValidateSchema(data, v.Schema); err != nil {
|
if err := ValidateSchema(data, v.Schema); err != nil {
|
||||||
return err
|
return fmt.Errorf("error validating %q: %v", path, err)
|
||||||
}
|
}
|
||||||
info, err := v.Mapper.InfoForData(data, path)
|
info, err := v.Mapper.InfoForData(data, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -312,7 +312,7 @@ func (v *URLVisitor) Visit(fn VisitorFunc) error {
|
|||||||
return fmt.Errorf("unable to read URL %q: %v\n", v.URL, err)
|
return fmt.Errorf("unable to read URL %q: %v\n", v.URL, err)
|
||||||
}
|
}
|
||||||
if err := ValidateSchema(data, v.Schema); err != nil {
|
if err := ValidateSchema(data, v.Schema); err != nil {
|
||||||
return err
|
return fmt.Errorf("error validating %q: %v", v.URL, err)
|
||||||
}
|
}
|
||||||
info, err := v.Mapper.InfoForData(data, v.URL.String())
|
info, err := v.Mapper.InfoForData(data, v.URL.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user