From 5b108acb3830e6a88f92a5b5c0fa637af8bc14e9 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Wed, 24 Feb 2016 21:45:30 -0800 Subject: [PATCH] fix ParameterCodec for thirdparty resource --- pkg/master/master.go | 2 +- pkg/registry/thirdpartyresourcedata/codec.go | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pkg/master/master.go b/pkg/master/master.go index 1f4d7ae24b..5692301e8c 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -639,7 +639,7 @@ func (m *Master) thirdpartyapi(group, kind, version string) *apiserver.APIGroupV OptionsExternalVersion: &optionsExternalVersion, Serializer: thirdpartyresourcedata.NewNegotiatedSerializer(api.Codecs, kind, externalVersion, internalVersion), - ParameterCodec: api.ParameterCodec, + ParameterCodec: thirdpartyresourcedata.NewThirdPartyParameterCodec(api.ParameterCodec), Context: m.RequestContextMapper, diff --git a/pkg/registry/thirdpartyresourcedata/codec.go b/pkg/registry/thirdpartyresourcedata/codec.go index 5ca3943d38..0a5db75ccf 100644 --- a/pkg/registry/thirdpartyresourcedata/codec.go +++ b/pkg/registry/thirdpartyresourcedata/codec.go @@ -21,12 +21,14 @@ import ( "encoding/json" "fmt" "io" + "net/url" "strings" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/unversioned" apiutil "k8s.io/kubernetes/pkg/api/util" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/runtime" @@ -364,3 +366,19 @@ func (t *thirdPartyResourceDataCreator) New(kind unversioned.GroupVersionKind) ( return t.delegate.New(kind) } } + +func NewThirdPartyParameterCodec(p runtime.ParameterCodec) runtime.ParameterCodec { + return &thirdPartyParameterCodec{p} +} + +type thirdPartyParameterCodec struct { + delegate runtime.ParameterCodec +} + +func (t *thirdPartyParameterCodec) DecodeParameters(parameters url.Values, from unversioned.GroupVersion, into runtime.Object) error { + return t.delegate.DecodeParameters(parameters, v1.SchemeGroupVersion, into) +} + +func (t *thirdPartyParameterCodec) EncodeParameters(obj runtime.Object, to unversioned.GroupVersion) (url.Values, error) { + return t.delegate.EncodeParameters(obj, v1.SchemeGroupVersion) +}