// Convert_runtime_Object_To_runtime_RawExtension is conversion function that assumes that the runtime.Object you've embedded is in // the same GroupVersion that your containing type is in. This is signficantly better than simply breaking. // Given an ordered list of preferred external versions for a given encode or conversion call, the behavior of this function could be // made generic, predictable, and controllable. func convert_runtime_Object_To_runtime_RawExtension(in runtime.Object, out *runtime.RawExtension, s conversion.Scope) error { if in == nil { return nil } externalObject, err := internal.Scheme.ConvertToVersion(in, s.Meta().DestVersion) if runtime.IsNotRegisteredError(err) { switch cast := in.(type) { case *runtime.Unknown: out.RawJSON = cast.RawJSON return nil case *runtime.Unstructured: bytes, err := runtime.Encode(runtime.UnstructuredJSONScheme, externalObject) if err != nil { return err } out.RawJSON = bytes return nil } } if err != nil { return err } bytes, err := runtime.Encode(codec, externalObject) if err != nil { return err } out.RawJSON = bytes out.Object = externalObject return nil }
// Visit implements Visitor over a stream. StreamVisitor is able to distinct multiple resources in one stream. func (v *StreamVisitor) Visit(fn VisitorFunc) error { d := yaml.NewYAMLOrJSONDecoder(v.Reader, 4096) for { ext := runtime.RawExtension{} if err := d.Decode(&ext); err != nil { if err == io.EOF { return nil } return err } ext.RawJSON = bytes.TrimSpace(ext.RawJSON) if len(ext.RawJSON) == 0 || bytes.Equal(ext.RawJSON, []byte("null")) { continue } if err := ValidateSchema(ext.RawJSON, v.Schema); err != nil { return fmt.Errorf("error validating %q: %v", v.Source, err) } info, err := v.InfoForData(ext.RawJSON, v.Source) if err != nil { if fnErr := fn(info, err); fnErr != nil { return fnErr } continue } if err := fn(info, nil); err != nil { return err } } }
// Visit implements Visitor over a stream. StreamVisitor is able to distinct multiple resources in one stream. func (v *StreamVisitor) Visit(fn VisitorFunc) error { d := yaml.NewYAMLOrJSONDecoder(v.Reader, 4096) for { ext := runtime.RawExtension{} if err := d.Decode(&ext); err != nil { if err == io.EOF { return nil } return err } ext.RawJSON = bytes.TrimSpace(ext.RawJSON) if len(ext.RawJSON) == 0 || bytes.Equal(ext.RawJSON, []byte("null")) { continue } if err := ValidateSchema(ext.RawJSON, v.Schema); err != nil { return fmt.Errorf("error validating %q: %v", v.Source, err) } info, err := v.InfoForData(ext.RawJSON, v.Source) if err != nil { if v.IgnoreErrors { fmt.Fprintf(os.Stderr, "error: could not read an encoded object: %v\n", err) glog.V(4).Infof("Unreadable: %s", string(ext.RawJSON)) continue } return err } if err := fn(info); err != nil { return err } } }
// Convert_runtime_Object_To_runtime_RawExtension is conversion function that assumes that the runtime.Object you've embedded is in // the same GroupVersion that your containing type is in. This is signficantly better than simply breaking. // Given an ordered list of preferred external versions for a given encode or conversion call, the behavior of this function could be // made generic, predictable, and controllable. func convert_runtime_Object_To_runtime_RawExtension(in runtime.Object, out *runtime.RawExtension, s conversion.Scope) error { if in == nil { return nil } externalObject, err := internal.Scheme.ConvertToVersion(in, s.Meta().DestVersion) if err != nil { return err } bytes, err := runtime.Encode(codec, externalObject) if err != nil { return err } out.RawJSON = bytes out.Object = externalObject return nil }
// Convert_runtime_Object_To_runtime_RawExtension is conversion function that assumes that the runtime.Object you've embedded is in // the same GroupVersion that your containing type is in. This is signficantly better than simply breaking. // Given an ordered list of preferred external versions for a given encode or conversion call, the behavior of this function could be // made generic, predictable, and controllable. func Convert_runtime_Object_To_runtime_RawExtension(in runtime.Object, out *runtime.RawExtension, s conversion.Scope) error { if in == nil { return nil } externalObject, err := kapi.Scheme.ConvertToVersion(in, s.Meta().DestVersion) if err != nil { return err } targetVersion, err := unversioned.ParseGroupVersion(s.Meta().DestVersion) if err != nil { return err } bytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(targetVersion), externalObject) if err != nil { return err } out.RawJSON = bytes out.Object = externalObject return nil }