mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	kubetcl create --validate crashes when no apiVersion or kind is provided
This commit is contained in:
		@@ -77,9 +77,15 @@ func (s *SwaggerSchema) ValidateBytes(data []byte) error {
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return fmt.Errorf("error in unmarshaling data %s", string(data))
 | 
			
		||||
	}
 | 
			
		||||
	apiVersion := fields["apiVersion"].(string)
 | 
			
		||||
	kind := fields["kind"].(string)
 | 
			
		||||
	return s.ValidateObject(obj, apiVersion, "", apiVersion+"."+kind)
 | 
			
		||||
	apiVersion := fields["apiVersion"]
 | 
			
		||||
	if apiVersion == nil {
 | 
			
		||||
		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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -266,7 +266,7 @@ type clientSwaggerSchema struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *clientSwaggerSchema) ValidateBytes(data []byte) error {
 | 
			
		||||
	version, _, err := c.t.DataVersionAndKind(data)
 | 
			
		||||
	version, _, err := runtime.UnstructuredJSONScheme.DataVersionAndKind(data)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -213,7 +213,7 @@ func (v *PathVisitor) Visit(fn VisitorFunc) error {
 | 
			
		||||
		return fmt.Errorf("unable to read %q: %v", v.Path, err)
 | 
			
		||||
	}
 | 
			
		||||
	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)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -276,7 +276,7 @@ func (v *DirectoryVisitor) Visit(fn VisitorFunc) error {
 | 
			
		||||
			return fmt.Errorf("unable to read %q: %v", path, err)
 | 
			
		||||
		}
 | 
			
		||||
		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)
 | 
			
		||||
		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)
 | 
			
		||||
	}
 | 
			
		||||
	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())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user