From a5ff573263822767eb7f072963c35915e67c0ec0 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 18 Apr 2016 21:24:26 -0400 Subject: [PATCH] ThirdPartyResourceCodec should implement streaming.Framer Wrappers must proxy NewFrameReader|Writer for now (until we potentially refactor the codec factory to separate them). --- pkg/registry/thirdpartyresourcedata/codec.go | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkg/registry/thirdpartyresourcedata/codec.go b/pkg/registry/thirdpartyresourcedata/codec.go index 8a315ca14c..3c09c6c6a0 100644 --- a/pkg/registry/thirdpartyresourcedata/codec.go +++ b/pkg/registry/thirdpartyresourcedata/codec.go @@ -33,6 +33,7 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/runtime" + "k8s.io/kubernetes/pkg/runtime/serializer/streaming" ) type thirdPartyObjectConverter struct { @@ -202,6 +203,11 @@ type thirdPartyResourceDataCodec struct { kind string } +var ( + _ runtime.Codec = &thirdPartyResourceDataCodec{} + _ streaming.Framer = &thirdPartyResourceDataCodec{} +) + func NewCodec(codec runtime.Codec, kind string) runtime.Codec { return &thirdPartyResourceDataCodec{codec, kind} } @@ -410,6 +416,24 @@ func (t *thirdPartyResourceDataCodec) EncodeToStream(obj runtime.Object, stream } } +// NewFrameWriter calls into the nested encoder to expose its framing +func (c *thirdPartyResourceDataCodec) NewFrameWriter(w io.Writer) io.Writer { + f, ok := c.delegate.(streaming.Framer) + if !ok { + return nil + } + return f.NewFrameWriter(w) +} + +// NewFrameReader calls into the nested decoder to expose its framing +func (c *thirdPartyResourceDataCodec) NewFrameReader(r io.Reader) io.Reader { + f, ok := c.delegate.(streaming.Framer) + if !ok { + return nil + } + return f.NewFrameReader(r) +} + func NewObjectCreator(group, version string, delegate runtime.ObjectCreater) runtime.ObjectCreater { return &thirdPartyResourceDataCreator{group, version, delegate} }