mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 18:54:06 +00:00
ThirdPartyResourceCodec should implement streaming.Framer
Wrappers must proxy NewFrameReader|Writer for now (until we potentially refactor the codec factory to separate them).
This commit is contained in:
parent
e81663c824
commit
a5ff573263
@ -33,6 +33,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/runtime/serializer/streaming"
|
||||||
)
|
)
|
||||||
|
|
||||||
type thirdPartyObjectConverter struct {
|
type thirdPartyObjectConverter struct {
|
||||||
@ -202,6 +203,11 @@ type thirdPartyResourceDataCodec struct {
|
|||||||
kind string
|
kind string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
_ runtime.Codec = &thirdPartyResourceDataCodec{}
|
||||||
|
_ streaming.Framer = &thirdPartyResourceDataCodec{}
|
||||||
|
)
|
||||||
|
|
||||||
func NewCodec(codec runtime.Codec, kind string) runtime.Codec {
|
func NewCodec(codec runtime.Codec, kind string) runtime.Codec {
|
||||||
return &thirdPartyResourceDataCodec{codec, kind}
|
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 {
|
func NewObjectCreator(group, version string, delegate runtime.ObjectCreater) runtime.ObjectCreater {
|
||||||
return &thirdPartyResourceDataCreator{group, version, delegate}
|
return &thirdPartyResourceDataCreator{group, version, delegate}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user