From 6e33403abf2602736bbffe43fe3d42f2a6514727 Mon Sep 17 00:00:00 2001 From: deads2k Date: Tue, 8 Dec 2015 13:49:38 -0500 Subject: [PATCH] update CodecFor for GroupVersion --- .../testdata/apis/testgroup/install/install.go | 2 +- .../client-gen/testdata/apis/testgroup/v1/register.go | 2 +- pkg/api/conversion.go | 2 +- pkg/api/install/install.go | 2 +- pkg/api/testing/compat/compatibility_tester.go | 3 ++- pkg/api/v1/backward_compatibility_test.go | 3 ++- pkg/api/v1/register.go | 2 +- pkg/apis/abac/v0/register.go | 2 +- pkg/apis/abac/v1beta1/register.go | 2 +- pkg/apis/componentconfig/install/install.go | 2 +- pkg/apis/componentconfig/v1alpha1/register.go | 2 +- pkg/apis/extensions/install/install.go | 2 +- pkg/apis/extensions/v1beta1/register.go | 2 +- pkg/apis/metrics/install/install.go | 2 +- pkg/apis/metrics/v1alpha1/register.go | 2 +- pkg/apiserver/apiserver.go | 2 +- pkg/apiserver/apiserver_test.go | 6 +++--- pkg/client/unversioned/clientcmd/api/v1/register.go | 2 +- pkg/conversion/unversioned_test.go | 6 +++--- pkg/kubectl/cmd/cmd_test.go | 4 ++-- pkg/kubectl/cmd/get_test.go | 2 +- pkg/runtime/codec.go | 9 +++++---- pkg/runtime/scheme_test.go | 2 +- pkg/storage/etcd/etcd_helper_test.go | 2 +- plugin/pkg/scheduler/api/v1/register.go | 2 +- 25 files changed, 36 insertions(+), 33 deletions(-) diff --git a/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/install/install.go b/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/install/install.go index 7a456cc1827..9cf8ca27b31 100644 --- a/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/install/install.go +++ b/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/install/install.go @@ -51,7 +51,7 @@ func init() { groupMeta := latest.GroupMeta{ GroupVersion: preferredExternalVersion, GroupVersions: externalVersions, - Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion.String()), + Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion), RESTMapper: newRESTMapper(externalVersions), SelfLinker: runtime.SelfLinker(accessor), InterfacesFor: interfacesFor, diff --git a/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1/register.go b/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1/register.go index 5e76ec9579e..dee951bdda6 100644 --- a/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1/register.go +++ b/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1/register.go @@ -24,7 +24,7 @@ import ( var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup", Version: "v1"} -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { // Register the API. diff --git a/pkg/api/conversion.go b/pkg/api/conversion.go index 9702b00ec20..052e5a7343d 100644 --- a/pkg/api/conversion.go +++ b/pkg/api/conversion.go @@ -27,7 +27,7 @@ import ( // Codec is the identity codec for this package - it can only convert itself // to itself. -var Codec = runtime.CodecFor(Scheme, "") +var Codec = runtime.CodecFor(Scheme, unversioned.GroupVersion{}) func init() { Scheme.AddDefaultingFuncs( diff --git a/pkg/api/install/install.go b/pkg/api/install/install.go index 7ac03bb32ee..8c1ade87286 100644 --- a/pkg/api/install/install.go +++ b/pkg/api/install/install.go @@ -61,7 +61,7 @@ func init() { groupMeta := latest.GroupMeta{ GroupVersion: preferredExternalVersion, GroupVersions: externalVersions, - Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion.String()), + Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion), RESTMapper: newRESTMapper(externalVersions), SelfLinker: runtime.SelfLinker(accessor), InterfacesFor: interfacesFor, diff --git a/pkg/api/testing/compat/compatibility_tester.go b/pkg/api/testing/compat/compatibility_tester.go index 80d543b83b5..48174fc3d82 100644 --- a/pkg/api/testing/compat/compatibility_tester.go +++ b/pkg/api/testing/compat/compatibility_tester.go @@ -27,6 +27,7 @@ import ( "testing" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/validation/field" @@ -39,7 +40,7 @@ import ( // keys in the resulting JSON. func TestCompatibility( t *testing.T, - version string, + version unversioned.GroupVersion, input []byte, validator func(obj runtime.Object) field.ErrorList, expectedKeys map[string]string, diff --git a/pkg/api/v1/backward_compatibility_test.go b/pkg/api/v1/backward_compatibility_test.go index 6700f4f2ef4..2ef3d926fd4 100644 --- a/pkg/api/v1/backward_compatibility_test.go +++ b/pkg/api/v1/backward_compatibility_test.go @@ -21,6 +21,7 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testing/compat" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/validation/field" @@ -223,6 +224,6 @@ func TestCompatibility_v1_PodSecurityContext(t *testing.T) { for _, tc := range cases { t.Logf("Testing 1.0.0 backward compatibility for %v", tc.name) - compat.TestCompatibility(t, "v1", []byte(tc.input), validator, tc.expectedKeys, tc.absentKeys) + compat.TestCompatibility(t, v1.SchemeGroupVersion, []byte(tc.input), validator, tc.expectedKeys, tc.absentKeys) } } diff --git a/pkg/api/v1/register.go b/pkg/api/v1/register.go index f961b8e2dd7..ae567eda146 100644 --- a/pkg/api/v1/register.go +++ b/pkg/api/v1/register.go @@ -30,7 +30,7 @@ const GroupName = "" var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} // Codec encodes internal objects to the v1 scheme -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { // Check if v1 is in the list of supported API versions. diff --git a/pkg/apis/abac/v0/register.go b/pkg/apis/abac/v0/register.go index 1651e5570c6..94d15226807 100644 --- a/pkg/apis/abac/v0/register.go +++ b/pkg/apis/abac/v0/register.go @@ -26,7 +26,7 @@ import ( var GroupVersion = unversioned.GroupVersion{Group: api.Group, Version: "v0"} // Codec encodes internal objects to the v0 version for the abac group -var Codec = runtime.CodecFor(api.Scheme, GroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, GroupVersion) func init() { api.Scheme.AddKnownTypes(GroupVersion, diff --git a/pkg/apis/abac/v1beta1/register.go b/pkg/apis/abac/v1beta1/register.go index b5bf2b6f9fd..d5cf014edc4 100644 --- a/pkg/apis/abac/v1beta1/register.go +++ b/pkg/apis/abac/v1beta1/register.go @@ -26,7 +26,7 @@ import ( var GroupVersion = unversioned.GroupVersion{Group: api.Group, Version: "v1beta1"} // Codec encodes internal objects to the v1beta1 version for the abac group -var Codec = runtime.CodecFor(api.Scheme, GroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, GroupVersion) func init() { api.Scheme.AddKnownTypes(GroupVersion, diff --git a/pkg/apis/componentconfig/install/install.go b/pkg/apis/componentconfig/install/install.go index 506104a7740..25b3c808bf7 100644 --- a/pkg/apis/componentconfig/install/install.go +++ b/pkg/apis/componentconfig/install/install.go @@ -61,7 +61,7 @@ func init() { groupMeta := latest.GroupMeta{ GroupVersion: preferredExternalVersion, GroupVersions: externalVersions, - Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion.String()), + Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion), RESTMapper: newRESTMapper(externalVersions), SelfLinker: runtime.SelfLinker(accessor), InterfacesFor: interfacesFor, diff --git a/pkg/apis/componentconfig/v1alpha1/register.go b/pkg/apis/componentconfig/v1alpha1/register.go index 2ea498b794b..cb03dcd47f2 100644 --- a/pkg/apis/componentconfig/v1alpha1/register.go +++ b/pkg/apis/componentconfig/v1alpha1/register.go @@ -28,7 +28,7 @@ const GroupName = "componentconfig" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1alpha1"} -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { addKnownTypes() diff --git a/pkg/apis/extensions/install/install.go b/pkg/apis/extensions/install/install.go index 814e7bb8f9e..11257c848d5 100644 --- a/pkg/apis/extensions/install/install.go +++ b/pkg/apis/extensions/install/install.go @@ -61,7 +61,7 @@ func init() { groupMeta := latest.GroupMeta{ GroupVersion: preferredExternalVersion, GroupVersions: externalVersions, - Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion.String()), + Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion), RESTMapper: newRESTMapper(externalVersions), SelfLinker: runtime.SelfLinker(accessor), InterfacesFor: interfacesFor, diff --git a/pkg/apis/extensions/v1beta1/register.go b/pkg/apis/extensions/v1beta1/register.go index d2c8795ff1c..2c97261ef31 100644 --- a/pkg/apis/extensions/v1beta1/register.go +++ b/pkg/apis/extensions/v1beta1/register.go @@ -28,7 +28,7 @@ const GroupName = "extensions" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1beta1"} -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { addKnownTypes() diff --git a/pkg/apis/metrics/install/install.go b/pkg/apis/metrics/install/install.go index 891b70e623a..95acc9d1c58 100644 --- a/pkg/apis/metrics/install/install.go +++ b/pkg/apis/metrics/install/install.go @@ -61,7 +61,7 @@ func init() { groupMeta := latest.GroupMeta{ GroupVersion: preferredExternalVersion, GroupVersions: externalVersions, - Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion.String()), + Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion), RESTMapper: newRESTMapper(externalVersions), SelfLinker: runtime.SelfLinker(accessor), InterfacesFor: interfacesFor, diff --git a/pkg/apis/metrics/v1alpha1/register.go b/pkg/apis/metrics/v1alpha1/register.go index cacaebbd626..25d3ee41d36 100644 --- a/pkg/apis/metrics/v1alpha1/register.go +++ b/pkg/apis/metrics/v1alpha1/register.go @@ -28,7 +28,7 @@ const GroupName = "metrics" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1alpha1"} -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { // Register the API. diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index 31f05a2ebda..1a2042fbfc8 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -228,7 +228,7 @@ func serviceErrorHandler(requestResolver *RequestInfoResolver, apiVersions []str for _, version := range apiVersions { if requestInfo.APIVersion == version { // valid api version. - codec = runtime.CodecFor(api.Scheme, requestInfo.APIVersion) + codec = runtime.CodecFor(api.Scheme, unversioned.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion}) break } } diff --git a/pkg/apiserver/apiserver_test.go b/pkg/apiserver/apiserver_test.go index 5a1f14c26c9..49515d38a56 100644 --- a/pkg/apiserver/apiserver_test.go +++ b/pkg/apiserver/apiserver_test.go @@ -65,11 +65,11 @@ var prefix = "apis" var grouplessGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} var grouplessPrefix = "api" -var grouplessCodec = runtime.CodecFor(api.Scheme, grouplessGroupVersion.String()) +var grouplessCodec = runtime.CodecFor(api.Scheme, grouplessGroupVersion) var groupVersions = []unversioned.GroupVersion{grouplessGroupVersion, testGroupVersion, newGroupVersion} -var codec = runtime.CodecFor(api.Scheme, testGroupVersion.String()) -var newCodec = runtime.CodecFor(api.Scheme, newGroupVersion.String()) +var codec = runtime.CodecFor(api.Scheme, testGroupVersion) +var newCodec = runtime.CodecFor(api.Scheme, newGroupVersion) var accessor = meta.NewAccessor() var versioner runtime.ResourceVersioner = accessor diff --git a/pkg/client/unversioned/clientcmd/api/v1/register.go b/pkg/client/unversioned/clientcmd/api/v1/register.go index c9e96039c72..af5c4185c75 100644 --- a/pkg/client/unversioned/clientcmd/api/v1/register.go +++ b/pkg/client/unversioned/clientcmd/api/v1/register.go @@ -27,7 +27,7 @@ import ( var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} // Codec encodes internal objects to the v1 scheme -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { api.Scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/conversion/unversioned_test.go b/pkg/conversion/unversioned_test.go index 4f7ff6c8593..e4b0c1ea73c 100644 --- a/pkg/conversion/unversioned_test.go +++ b/pkg/conversion/unversioned_test.go @@ -26,6 +26,7 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/runtime" ) @@ -66,9 +67,8 @@ func TestV1EncodeDecodeStatus(t *testing.T) { func TestExperimentalEncodeDecodeStatus(t *testing.T) { // TODO: caesarxuchao: use the testapi.Extensions.Codec() once the PR that // moves experimental from v1 to v1beta1 got merged. - // expCodec := testapi.Extensions.Codec() - expCodec := runtime.CodecFor(api.Scheme, "extensions/v1beta1") - encoded, err := runtime.Encode(expCodec, status) + expCodec := runtime.CodecFor(api.Scheme, v1beta1.SchemeGroupVersion) + encoded, err := expCodec.Encode(status) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/pkg/kubectl/cmd/cmd_test.go b/pkg/kubectl/cmd/cmd_test.go index dce8e043d81..38043eed487 100644 --- a/pkg/kubectl/cmd/cmd_test.go +++ b/pkg/kubectl/cmd/cmd_test.go @@ -90,10 +90,10 @@ func newExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) { //This tests that kubectl will not confuse the external scheme with the internal scheme, even when they accidentally have versions of the same name. scheme.AddKnownTypeWithName(validVersionGV.WithKind("Type"), &ExternalType2{}) - codec := runtime.CodecFor(scheme, unlikelyGV.String()) + codec := runtime.CodecFor(scheme, unlikelyGV) mapper := meta.NewDefaultRESTMapper([]unversioned.GroupVersion{unlikelyGV, validVersionGV}, func(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { return &meta.VersionInterfaces{ - Codec: runtime.CodecFor(scheme, version.String()), + Codec: runtime.CodecFor(scheme, version), ObjectConvertor: scheme, MetadataAccessor: meta.NewAccessor(), }, versionErrIfFalse(version == validVersionGV || version == unlikelyGV) diff --git a/pkg/kubectl/cmd/get_test.go b/pkg/kubectl/cmd/get_test.go index 3d5b53eb258..3fef6448504 100644 --- a/pkg/kubectl/cmd/get_test.go +++ b/pkg/kubectl/cmd/get_test.go @@ -177,7 +177,7 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { }, } for k, test := range testCases { - apiCodec := runtime.CodecFor(api.Scheme, testapi.Default.GroupVersion().String()) + apiCodec := runtime.CodecFor(api.Scheme, *testapi.Default.GroupVersion()) regularClient := &fake.RESTClient{ Codec: apiCodec, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { diff --git a/pkg/runtime/codec.go b/pkg/runtime/codec.go index b96522e5512..3539388a4c3 100644 --- a/pkg/runtime/codec.go +++ b/pkg/runtime/codec.go @@ -19,6 +19,7 @@ package runtime import ( "io" + "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/util/yaml" ) @@ -41,7 +42,7 @@ func DecodeInto(d Decoder, data []byte, into Object) error { } // CodecFor returns a Codec that invokes Encode with the provided version. -func CodecFor(codec ObjectCodec, version string) Codec { +func CodecFor(codec ObjectCodec, version unversioned.GroupVersion) Codec { return &codecWrapper{codec, version} } @@ -91,7 +92,7 @@ func EncodeOrDie(codec Codec, obj Object) string { // default version for a scheme. type codecWrapper struct { ObjectCodec - version string + version unversioned.GroupVersion } // codecWrapper implements Decoder @@ -99,11 +100,11 @@ var _ Decoder = &codecWrapper{} // Encode implements Codec func (c *codecWrapper) Encode(obj Object) ([]byte, error) { - return c.EncodeToVersion(obj, c.version) + return c.EncodeToVersion(obj, c.version.String()) } func (c *codecWrapper) EncodeToStream(obj Object, stream io.Writer) error { - return c.EncodeToVersionStream(obj, c.version, stream) + return c.EncodeToVersionStream(obj, c.version.String(), stream) } // TODO: Make this behaviour default when we move everyone away from diff --git a/pkg/runtime/scheme_test.go b/pkg/runtime/scheme_test.go index 44ebdd75e97..1bd1a0963f6 100644 --- a/pkg/runtime/scheme_test.go +++ b/pkg/runtime/scheme_test.go @@ -306,7 +306,7 @@ func TestEncode(t *testing.T) { scheme.AddInternalGroupVersion(internalGV) scheme.AddKnownTypeWithName(internalGV.WithKind("Simple"), &InternalSimple{}) scheme.AddKnownTypeWithName(externalGV.WithKind("Simple"), &ExternalSimple{}) - codec := runtime.CodecFor(scheme, externalGV.String()) + codec := runtime.CodecFor(scheme, externalGV) test := &InternalSimple{ TestString: "I'm the same", } diff --git a/pkg/storage/etcd/etcd_helper_test.go b/pkg/storage/etcd/etcd_helper_test.go index 857e4b9d6bc..0233fc81c4c 100644 --- a/pkg/storage/etcd/etcd_helper_test.go +++ b/pkg/storage/etcd/etcd_helper_test.go @@ -46,7 +46,7 @@ func init() { scheme = runtime.NewScheme() scheme.AddKnownTypes(testapi.Default.InternalGroupVersion(), &storagetesting.TestResource{}) scheme.AddKnownTypes(*testapi.Default.GroupVersion(), &storagetesting.TestResource{}) - codec = runtime.CodecFor(scheme, testapi.Default.GroupVersion().String()) + codec = runtime.CodecFor(scheme, *testapi.Default.GroupVersion()) scheme.AddConversionFuncs( func(in *storagetesting.TestResource, out *storagetesting.TestResource, s conversion.Scope) error { *out = *in diff --git a/plugin/pkg/scheduler/api/v1/register.go b/plugin/pkg/scheduler/api/v1/register.go index 5f5cb49064f..acc48a6afa7 100644 --- a/plugin/pkg/scheduler/api/v1/register.go +++ b/plugin/pkg/scheduler/api/v1/register.go @@ -27,7 +27,7 @@ import ( var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} // Codec encodes internal objects to the v1 scheme -var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion.String()) +var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion) func init() { api.Scheme.AddKnownTypes(SchemeGroupVersion,