diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index 006a5b9b4bf..ac70c3db60a 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -347,13 +347,13 @@ func updateEtcdOverrides(overrides []string, storageVersions map[string]string, glog.Errorf("invalid api group %s: %v", group, err) continue } - if _, found := storageVersions[apigroup.Group]; !found { - glog.Errorf("Couldn't find the storage version for group %s", apigroup.Group) + if _, found := storageVersions[apigroup.GroupVersion.Group]; !found { + glog.Errorf("Couldn't find the storage version for group %s", apigroup.GroupVersion.Group) continue } servers := strings.Split(tokens[1], ";") - etcdOverrideStorage, err := newEtcdFn("", servers, apigroup.InterfacesFor, storageVersions[apigroup.Group], prefix) + etcdOverrideStorage, err := newEtcdFn("", servers, apigroup.InterfacesFor, storageVersions[apigroup.GroupVersion.Group], prefix) if err != nil { glog.Fatalf("Invalid storage version or misconfigured etcd for %s: %v", tokens[0], err) } @@ -456,10 +456,10 @@ func (s *APIServer) Run(_ []string) error { storageDestinations := master.NewStorageDestinations() storageVersions := generateStorageVersionMap(s.DeprecatedStorageVersion, s.StorageVersions) - if _, found := storageVersions[legacyV1Group.Group]; !found { - glog.Fatalf("Couldn't find the storage version for group: %q in storageVersions: %v", legacyV1Group.Group, storageVersions) + if _, found := storageVersions[legacyV1Group.GroupVersion.Group]; !found { + glog.Fatalf("Couldn't find the storage version for group: %q in storageVersions: %v", legacyV1Group.GroupVersion.Group, storageVersions) } - etcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, legacyV1Group.InterfacesFor, storageVersions[legacyV1Group.Group], s.EtcdPathPrefix) + etcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, legacyV1Group.InterfacesFor, storageVersions[legacyV1Group.GroupVersion.Group], s.EtcdPathPrefix) if err != nil { glog.Fatalf("Invalid storage version or misconfigured etcd: %v", err) } @@ -470,10 +470,10 @@ func (s *APIServer) Run(_ []string) error { if err != nil { glog.Fatalf("Extensions API is enabled in runtime config, but not enabled in the environment variable KUBE_API_VERSIONS. Error: %v", err) } - if _, found := storageVersions[expGroup.Group]; !found { - glog.Fatalf("Couldn't find the storage version for group: %q in storageVersions: %v", expGroup.Group, storageVersions) + if _, found := storageVersions[expGroup.GroupVersion.Group]; !found { + glog.Fatalf("Couldn't find the storage version for group: %q in storageVersions: %v", expGroup.GroupVersion.Group, storageVersions) } - expEtcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, expGroup.InterfacesFor, storageVersions[expGroup.Group], s.EtcdPathPrefix) + expEtcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, expGroup.InterfacesFor, storageVersions[expGroup.GroupVersion.Group], s.EtcdPathPrefix) if err != nil { glog.Fatalf("Invalid extensions storage version or misconfigured etcd: %v", err) } diff --git a/cmd/kube-version-change/version.go b/cmd/kube-version-change/version.go index 4ae8c3b7e50..af6e7bb4739 100644 --- a/cmd/kube-version-change/version.go +++ b/cmd/kube-version-change/version.go @@ -39,7 +39,7 @@ var ( inputSource = flag.StringP("input", "i", "-", "Input source; '-' means stdin") outputDest = flag.StringP("output", "o", "-", "Output destination; '-' means stdout") rewrite = flag.StringP("rewrite", "r", "", "If nonempty, use this as both input and output.") - outputVersion = flag.StringP("out-version", "v", latest.GroupOrDie("").Version, "Version to convert input to") + outputVersion = flag.StringP("out-version", "v", latest.GroupOrDie("").GroupVersion.Version, "Version to convert input to") ) // isYAML determines whether data is JSON or YAML formatted by seeing diff --git a/pkg/api/install/install.go b/pkg/api/install/install.go index 3354c70da94..47890b399ba 100644 --- a/pkg/api/install/install.go +++ b/pkg/api/install/install.go @@ -49,26 +49,22 @@ func init() { return } - worstToBestGroupVersions := []unversioned.GroupVersion{} - // Use the first API version in the list of registered versions as the latest. registeredGroupVersions := registered.GroupVersionsForGroup("") groupVersion := registeredGroupVersions[0] *groupMeta = latest.GroupMeta{ - GroupVersion: groupVersion.String(), - Group: groupVersion.Group, - Version: groupVersion.Version, + GroupVersion: groupVersion, Codec: runtime.CodecFor(api.Scheme, groupVersion.String()), } + var versions []string - var groupVersions []string + worstToBestGroupVersions := []unversioned.GroupVersion{} for i := len(registeredGroupVersions) - 1; i >= 0; i-- { versions = append(versions, registeredGroupVersions[i].Version) - groupVersions = append(groupVersions, registeredGroupVersions[i].String()) worstToBestGroupVersions = append(worstToBestGroupVersions, registeredGroupVersions[i]) } groupMeta.Versions = versions - groupMeta.GroupVersions = groupVersions + groupMeta.GroupVersions = registeredGroupVersions groupMeta.SelfLinker = runtime.SelfLinker(accessor) diff --git a/pkg/api/install/install_test.go b/pkg/api/install/install_test.go index fced17b78f4..ec019df9b69 100644 --- a/pkg/api/install/install_test.go +++ b/pkg/api/install/install_test.go @@ -57,7 +57,7 @@ func TestCodec(t *testing.T) { if err := json.Unmarshal(data, &other); err != nil { t.Fatalf("unexpected error: %v", err) } - if other.APIVersion != latest.GroupOrDie("").Version || other.Kind != "Pod" { + if other.APIVersion != latest.GroupOrDie("").GroupVersion.Version || other.Kind != "Pod" { t.Errorf("unexpected unmarshalled object %#v", other) } } @@ -66,7 +66,7 @@ func TestInterfacesFor(t *testing.T) { if _, err := latest.GroupOrDie("").InterfacesFor(""); err == nil { t.Fatalf("unexpected non-error: %v", err) } - for i, version := range append([]string{latest.GroupOrDie("").Version}, latest.GroupOrDie("").Versions...) { + for i, version := range append([]string{latest.GroupOrDie("").GroupVersion.Version}, latest.GroupOrDie("").Versions...) { if vi, err := latest.GroupOrDie("").InterfacesFor(version); err != nil || vi == nil { t.Fatalf("%d: unexpected result: %v", i, err) } diff --git a/pkg/api/latest/latest.go b/pkg/api/latest/latest.go index 9341466615f..7ba42fb8465 100644 --- a/pkg/api/latest/latest.go +++ b/pkg/api/latest/latest.go @@ -23,6 +23,7 @@ import ( "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/registered" + "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/runtime" ) @@ -97,7 +98,7 @@ func (g GroupMetaMap) AllPreferredGroupVersions() string { } var defaults []string for _, groupMeta := range g { - defaults = append(defaults, groupMeta.GroupVersion) + defaults = append(defaults, groupMeta.GroupVersion.String()) } sort.Strings(defaults) return strings.Join(defaults, ",") @@ -105,16 +106,8 @@ func (g GroupMetaMap) AllPreferredGroupVersions() string { // GroupMeta stores the metadata of a group, such as the latest supported version. type GroupMeta struct { - // GroupVersion represents the current external default version of the group. It - // is in the form of "group/version". - GroupVersion string - - // Version represents the current external default version of the group. - // It equals to the "version" part of GroupVersion. - Version string - - // Group represents the name of the group - Group string + // GroupVersion represents the current external default version of the group. + GroupVersion unversioned.GroupVersion // Versions is the list of versions that are recognized in code. The order // provided is assumed to be from the oldest to the newest, e.g., @@ -125,7 +118,7 @@ type GroupMeta struct { // GroupVersions is Group + Versions. This is to avoid string concatenation // in many places. - GroupVersions []string + GroupVersions []unversioned.GroupVersion // Codec is the default codec for serializing output that should use // the latest supported version. Use this Codec when writing to diff --git a/pkg/api/latest/latest_test.go b/pkg/api/latest/latest_test.go index 4b3e0c91a54..21093079549 100644 --- a/pkg/api/latest/latest_test.go +++ b/pkg/api/latest/latest_test.go @@ -16,7 +16,11 @@ limitations under the License. package latest -import "testing" +import ( + "testing" + + "k8s.io/kubernetes/pkg/api/unversioned" +) func TestAllPreferredGroupVersions(t *testing.T) { testCases := []struct { @@ -26,13 +30,13 @@ func TestAllPreferredGroupVersions(t *testing.T) { { groupMetaMap: GroupMetaMap{ "group1": &GroupMeta{ - GroupVersion: "group1/v1", + GroupVersion: unversioned.GroupVersion{"group1", "v1"}, }, "group2": &GroupMeta{ - GroupVersion: "group2/v2", + GroupVersion: unversioned.GroupVersion{"group2", "v2"}, }, "": &GroupMeta{ - GroupVersion: "v1", + GroupVersion: unversioned.GroupVersion{"", "v1"}, }, }, expect: "group1/v1,group2/v2,v1", @@ -40,7 +44,7 @@ func TestAllPreferredGroupVersions(t *testing.T) { { groupMetaMap: GroupMetaMap{ "": &GroupMeta{ - GroupVersion: "v1", + GroupVersion: unversioned.GroupVersion{"", "v1"}, }, }, expect: "v1", diff --git a/pkg/api/testapi/testapi.go b/pkg/api/testapi/testapi.go index 54939a905df..e6bddc4508f 100644 --- a/pkg/api/testapi/testapi.go +++ b/pkg/api/testapi/testapi.go @@ -64,12 +64,12 @@ func init() { // TODO: caesarxuchao: we need a central place to store all available API // groups and their metadata. if _, ok := Groups[""]; !ok { - // TODO: The second latest.GroupOrDie("").Version will be latest.GroupVersion after we + // TODO: The second latest.GroupOrDie("").GroupVersion.Version will be latest.GroupVersion after we // have multiple group support - Groups[""] = TestGroup{"", latest.GroupOrDie("").Version, latest.GroupOrDie("").GroupVersion} + Groups[""] = TestGroup{"", latest.GroupOrDie("").GroupVersion.Version, latest.GroupOrDie("").GroupVersion.String()} } if _, ok := Groups["extensions"]; !ok { - Groups["extensions"] = TestGroup{"extensions", latest.GroupOrDie("extensions").Version, latest.GroupOrDie("extensions").GroupVersion} + Groups["extensions"] = TestGroup{"extensions", latest.GroupOrDie("extensions").GroupVersion.Version, latest.GroupOrDie("extensions").GroupVersion.String()} } Default = Groups[""] diff --git a/pkg/apis/componentconfig/install/install.go b/pkg/apis/componentconfig/install/install.go index 9ae7d3a477d..1e001e73037 100644 --- a/pkg/apis/componentconfig/install/install.go +++ b/pkg/apis/componentconfig/install/install.go @@ -46,25 +46,21 @@ func init() { return } - worstToBestGroupVersions := []unversioned.GroupVersion{} - registeredGroupVersions := registered.GroupVersionsForGroup("componentconfig") groupVersion := registeredGroupVersions[0] *groupMeta = latest.GroupMeta{ - GroupVersion: groupVersion.String(), - Group: groupVersion.Group, - Version: groupVersion.Version, + GroupVersion: groupVersion, Codec: runtime.CodecFor(api.Scheme, groupVersion.String()), } + var versions []string - var groupVersions []string + worstToBestGroupVersions := []unversioned.GroupVersion{} for i := len(registeredGroupVersions) - 1; i >= 0; i-- { versions = append(versions, registeredGroupVersions[i].Version) - groupVersions = append(groupVersions, registeredGroupVersions[i].String()) worstToBestGroupVersions = append(worstToBestGroupVersions, registeredGroupVersions[i]) } groupMeta.Versions = versions - groupMeta.GroupVersions = groupVersions + groupMeta.GroupVersions = registeredGroupVersions groupMeta.SelfLinker = runtime.SelfLinker(accessor) diff --git a/pkg/apis/componentconfig/install/install_test.go b/pkg/apis/componentconfig/install/install_test.go index 0495bed497c..762552d4d45 100644 --- a/pkg/apis/componentconfig/install/install_test.go +++ b/pkg/apis/componentconfig/install/install_test.go @@ -37,7 +37,7 @@ func TestCodec(t *testing.T) { if err := json.Unmarshal(data, &other); err != nil { t.Fatalf("unexpected error: %v", err) } - if other.APIVersion != latest.GroupOrDie("componentconfig").GroupVersion || other.Kind != "KubeProxyConfiguration" { + if other.APIVersion != latest.GroupOrDie("componentconfig").GroupVersion.String() || other.Kind != "KubeProxyConfiguration" { t.Errorf("unexpected unmarshalled object %#v", other) } } @@ -46,8 +46,8 @@ func TestInterfacesFor(t *testing.T) { if _, err := latest.GroupOrDie("componentconfig").InterfacesFor(""); err == nil { t.Fatalf("unexpected non-error: %v", err) } - for i, groupVersion := range append([]string{latest.GroupOrDie("componentconfig").GroupVersion}, latest.GroupOrDie("componentconfig").GroupVersions...) { - if vi, err := latest.GroupOrDie("componentconfig").InterfacesFor(groupVersion); err != nil || vi == nil { + for i, groupVersion := range append([]unversioned.GroupVersion{latest.GroupOrDie("componentconfig").GroupVersion}, latest.GroupOrDie("componentconfig").GroupVersions...) { + if vi, err := latest.GroupOrDie("componentconfig").InterfacesFor(groupVersion.String()); err != nil || vi == nil { t.Fatalf("%d: unexpected result: %v", i, err) } } diff --git a/pkg/apis/extensions/install/install.go b/pkg/apis/extensions/install/install.go index f16343340f7..e0bb7819ac3 100644 --- a/pkg/apis/extensions/install/install.go +++ b/pkg/apis/extensions/install/install.go @@ -46,25 +46,21 @@ func init() { return } - worstToBestGroupVersions := []unversioned.GroupVersion{} - registeredGroupVersions := registered.GroupVersionsForGroup("extensions") groupVersion := registeredGroupVersions[0] *groupMeta = latest.GroupMeta{ - GroupVersion: groupVersion.String(), - Group: groupVersion.Group, - Version: groupVersion.Version, + GroupVersion: groupVersion, Codec: runtime.CodecFor(api.Scheme, groupVersion.String()), } + var versions []string - var groupVersions []string + worstToBestGroupVersions := []unversioned.GroupVersion{} for i := len(registeredGroupVersions) - 1; i >= 0; i-- { versions = append(versions, registeredGroupVersions[i].Version) - groupVersions = append(groupVersions, registeredGroupVersions[i].String()) worstToBestGroupVersions = append(worstToBestGroupVersions, registeredGroupVersions[i]) } groupMeta.Versions = versions - groupMeta.GroupVersions = groupVersions + groupMeta.GroupVersions = registeredGroupVersions groupMeta.SelfLinker = runtime.SelfLinker(accessor) diff --git a/pkg/apis/extensions/install/install_test.go b/pkg/apis/extensions/install/install_test.go index 1580a1d1a34..27a65b7c39e 100644 --- a/pkg/apis/extensions/install/install_test.go +++ b/pkg/apis/extensions/install/install_test.go @@ -58,7 +58,7 @@ func TestCodec(t *testing.T) { if err := json.Unmarshal(data, &other); err != nil { t.Fatalf("unexpected error: %v", err) } - if other.APIVersion != latest.GroupOrDie("extensions").GroupVersion || other.Kind != "DaemonSet" { + if other.APIVersion != latest.GroupOrDie("extensions").GroupVersion.String() || other.Kind != "DaemonSet" { t.Errorf("unexpected unmarshalled object %#v", other) } } @@ -67,8 +67,8 @@ func TestInterfacesFor(t *testing.T) { if _, err := latest.GroupOrDie("extensions").InterfacesFor(""); err == nil { t.Fatalf("unexpected non-error: %v", err) } - for i, groupVersion := range append([]string{latest.GroupOrDie("extensions").GroupVersion}, latest.GroupOrDie("extensions").GroupVersions...) { - if vi, err := latest.GroupOrDie("extensions").InterfacesFor(groupVersion); err != nil || vi == nil { + for i, groupVersion := range append([]unversioned.GroupVersion{latest.GroupOrDie("extensions").GroupVersion}, latest.GroupOrDie("extensions").GroupVersions...) { + if vi, err := latest.GroupOrDie("extensions").InterfacesFor(groupVersion.String()); err != nil || vi == nil { t.Fatalf("%d: unexpected result: %v", i, err) } } diff --git a/pkg/apis/metrics/install/install.go b/pkg/apis/metrics/install/install.go index ae7baf2a718..3f50ff76fe9 100644 --- a/pkg/apis/metrics/install/install.go +++ b/pkg/apis/metrics/install/install.go @@ -46,25 +46,21 @@ func init() { return } - worstToBestGroupVersions := []unversioned.GroupVersion{} - registeredGroupVersions := registered.GroupVersionsForGroup("metrics") groupVersion := registeredGroupVersions[0] *groupMeta = latest.GroupMeta{ - GroupVersion: groupVersion.String(), - Group: groupVersion.Group, - Version: groupVersion.Version, + GroupVersion: groupVersion, Codec: runtime.CodecFor(api.Scheme, groupVersion.String()), } + var versions []string - var groupVersions []string + worstToBestGroupVersions := []unversioned.GroupVersion{} for i := len(registeredGroupVersions) - 1; i >= 0; i-- { versions = append(versions, registeredGroupVersions[i].Version) - groupVersions = append(groupVersions, registeredGroupVersions[i].String()) worstToBestGroupVersions = append(worstToBestGroupVersions, registeredGroupVersions[i]) } groupMeta.Versions = versions - groupMeta.GroupVersions = groupVersions + groupMeta.GroupVersions = registeredGroupVersions groupMeta.SelfLinker = runtime.SelfLinker(accessor) diff --git a/pkg/client/unversioned/extensions.go b/pkg/client/unversioned/extensions.go index 547a3a73797..6cf7e574b40 100644 --- a/pkg/client/unversioned/extensions.go +++ b/pkg/client/unversioned/extensions.go @@ -140,11 +140,8 @@ func setExtensionsDefaults(config *Config) error { } // TODO: Unconditionally set the config.Version, until we fix the config. //if config.Version == "" { - gv, err := unversioned.ParseGroupVersion(g.GroupVersion) - if err != nil { - return err - } - config.GroupVersion = &gv + copyGroupVersion := g.GroupVersion + config.GroupVersion = ©GroupVersion //} versionInterfaces, err := g.InterfacesFor(config.GroupVersion.String()) diff --git a/pkg/client/unversioned/helper.go b/pkg/client/unversioned/helper.go index 9baed37add6..84773e2815d 100644 --- a/pkg/client/unversioned/helper.go +++ b/pkg/client/unversioned/helper.go @@ -544,11 +544,8 @@ func defaultVersionFor(config *Config) *unversioned.GroupVersion { // Clients default to the preferred code API version // TODO: implement version negotiation (highest version supported by server) // TODO this drops out when groupmeta is refactored - gv, err := unversioned.ParseGroupVersion(latest.GroupOrDie("").GroupVersion) - if err != nil { - panic(err) - } - return &gv + copyGroupVersion := latest.GroupOrDie("").GroupVersion + return ©GroupVersion } return config.GroupVersion diff --git a/pkg/client/unversioned/jobs.go b/pkg/client/unversioned/jobs.go index 84adeee97f5..7dfe2f5c04a 100644 --- a/pkg/client/unversioned/jobs.go +++ b/pkg/client/unversioned/jobs.go @@ -90,7 +90,7 @@ func (c *jobs) Delete(name string, options *api.DeleteOptions) (err error) { return c.r.Delete().Namespace(c.ns).Resource("jobs").Name(name).Do().Error() } - body, err := api.Scheme.EncodeToVersion(options, latest.GroupOrDie("").GroupVersion) + body, err := api.Scheme.EncodeToVersion(options, latest.GroupOrDie("").GroupVersion.String()) if err != nil { return err } diff --git a/pkg/kubectl/cmd/convert.go b/pkg/kubectl/cmd/convert.go index 19b4c77834d..311d166c137 100644 --- a/pkg/kubectl/cmd/convert.go +++ b/pkg/kubectl/cmd/convert.go @@ -95,7 +95,7 @@ type ConvertOptions struct { // Complete collects information required to run Convert command from command line. func (o *ConvertOptions) Complete(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []string) (err error) { - o.outputVersion = cmdutil.OutputVersion(cmd, latest.GroupOrDie("").Version) + o.outputVersion = cmdutil.OutputVersion(cmd, latest.GroupOrDie("").GroupVersion.Version) outputGV, err := unversioned.ParseGroupVersion(o.outputVersion) if err != nil { return fmt.Errorf("unable to parse group/version from %q: %v", o.outputVersion, err) diff --git a/pkg/kubectl/cmd/explain.go b/pkg/kubectl/cmd/explain.go index 8eb4f021223..7059d1f554c 100644 --- a/pkg/kubectl/cmd/explain.go +++ b/pkg/kubectl/cmd/explain.go @@ -92,7 +92,7 @@ func RunExplain(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []st if err != nil { return err } - apiV = groupMeta.GroupVersion + apiV = groupMeta.GroupVersion.String() } swagSchema, err := kubectl.GetSwaggerSchema(apiV, client) if err != nil { diff --git a/pkg/kubectl/resource/result.go b/pkg/kubectl/resource/result.go index c91a58d4e42..6c1381dc6e3 100644 --- a/pkg/kubectl/resource/result.go +++ b/pkg/kubectl/resource/result.go @@ -221,7 +221,7 @@ func AsVersionedObject(infos []*Info, forceList bool, version string) (runtime.O object = objects[0] } else { object = &api.List{Items: objects} - converted, err := tryConvert(api.Scheme, object, version, latest.GroupOrDie("").Version) + converted, err := tryConvert(api.Scheme, object, version, latest.GroupOrDie("").GroupVersion.Version) if err != nil { return nil, err } diff --git a/pkg/kubelet/config/common.go b/pkg/kubelet/config/common.go index 4f097052cc3..d83ef88a9fd 100644 --- a/pkg/kubelet/config/common.go +++ b/pkg/kubelet/config/common.go @@ -78,7 +78,7 @@ func getSelfLink(name, namespace string) string { if len(namespace) == 0 { namespace = api.NamespaceDefault } - selfLink = fmt.Sprintf("/api/"+latest.GroupOrDie("").Version+"/pods/namespaces/%s/%s", name, namespace) + selfLink = fmt.Sprintf("/api/"+latest.GroupOrDie("").GroupVersion.Version+"/pods/namespaces/%s/%s", name, namespace) return selfLink } diff --git a/pkg/master/master.go b/pkg/master/master.go index c8b0c502a67..fdfa2a07a28 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -673,16 +673,16 @@ func (m *Master) init(c *Config) { Version: expVersion.GroupVersion.Version, }, } - storageVersion, found := c.StorageVersions[g.Group] + storageVersion, found := c.StorageVersions[g.GroupVersion.Group] if !found { - glog.Fatalf("Couldn't find storage version of group %v", g.Group) + glog.Fatalf("Couldn't find storage version of group %v", g.GroupVersion.Group) } group := unversioned.APIGroup{ - Name: g.Group, + Name: g.GroupVersion.Group, Versions: expAPIVersions, PreferredVersion: unversioned.GroupVersionForDiscovery{GroupVersion: storageVersion, Version: apiutil.GetVersion(storageVersion)}, } - apiserver.AddGroupWebService(m.handlerContainer, c.APIGroupPrefix+"/"+latest.GroupOrDie("extensions").Group, group) + apiserver.AddGroupWebService(m.handlerContainer, c.APIGroupPrefix+"/"+latest.GroupOrDie("extensions").GroupVersion.Group, group) allGroups = append(allGroups, group) apiserver.InstallServiceErrorHandler(m.handlerContainer, m.newRequestInfoResolver(), []string{expVersion.GroupVersion.String()}) } @@ -1021,7 +1021,7 @@ func (m *Master) thirdpartyapi(group, kind, version string) *apiserver.APIGroupV strings.ToLower(kind) + "s": resourceStorage, } - serverGroupVersion := unversioned.ParseGroupVersionOrDie(latest.GroupOrDie("").GroupVersion) + serverGroupVersion := latest.GroupOrDie("").GroupVersion return &apiserver.APIGroupVersion{ Root: apiRoot, @@ -1111,7 +1111,7 @@ func (m *Master) experimental(c *Config) *apiserver.APIGroupVersion { } extensionsGroup := latest.GroupOrDie("extensions") - serverGroupVersion := unversioned.ParseGroupVersionOrDie(latest.GroupOrDie("").GroupVersion) + serverGroupVersion := latest.GroupOrDie("").GroupVersion return &apiserver.APIGroupVersion{ Root: m.apiGroupPrefix, @@ -1125,7 +1125,7 @@ func (m *Master) experimental(c *Config) *apiserver.APIGroupVersion { Codec: extensionsGroup.Codec, Linker: extensionsGroup.SelfLinker, Storage: storage, - GroupVersion: unversioned.ParseGroupVersionOrDie(extensionsGroup.GroupVersion), + GroupVersion: extensionsGroup.GroupVersion, ServerGroupVersion: &serverGroupVersion, Admit: m.admissionControl, diff --git a/pkg/master/master_test.go b/pkg/master/master_test.go index 655210c3df4..2907b3de7f2 100644 --- a/pkg/master/master_test.go +++ b/pkg/master/master_test.go @@ -354,7 +354,7 @@ func TestExpapi(t *testing.T) { assert.Equal(expAPIGroup.Mapper, extensionsGroupMeta.RESTMapper) assert.Equal(expAPIGroup.Codec, extensionsGroupMeta.Codec) assert.Equal(expAPIGroup.Linker, extensionsGroupMeta.SelfLinker) - assert.Equal(expAPIGroup.GroupVersion, unversioned.GroupVersion{Group: extensionsGroupMeta.Group, Version: extensionsGroupMeta.Version}) + assert.Equal(expAPIGroup.GroupVersion, extensionsGroupMeta.GroupVersion) } // TestGetNodeAddresses verifies that proper results are returned diff --git a/pkg/registry/thirdpartyresourcedata/codec.go b/pkg/registry/thirdpartyresourcedata/codec.go index 6d6b30f4998..74a8a51a16b 100644 --- a/pkg/registry/thirdpartyresourcedata/codec.go +++ b/pkg/registry/thirdpartyresourcedata/codec.go @@ -69,7 +69,7 @@ func (t *thirdPartyResourceDataMapper) RESTMapping(gk unversioned.GroupKind, ver // TODO figure out why we're doing this rewriting extensionGK := unversioned.GroupKind{Group: "extensions", Kind: "ThirdPartyResourceData"} - mapping, err := t.mapper.RESTMapping(extensionGK, latest.GroupOrDie("extensions").Version) + mapping, err := t.mapper.RESTMapping(extensionGK, latest.GroupOrDie("extensions").GroupVersion.Version) if err != nil { return nil, err } diff --git a/test/e2e/dns.go b/test/e2e/dns.go index d4bb7181e8e..e73a1a41da5 100644 --- a/test/e2e/dns.go +++ b/test/e2e/dns.go @@ -43,7 +43,7 @@ func createDNSPod(namespace, wheezyProbeCmd, jessieProbeCmd string) *api.Pod { pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: "dns-test-" + string(util.NewUUID()), diff --git a/test/e2e/empty_dir.go b/test/e2e/empty_dir.go index dc7ff7c5344..e8bdd5be321 100644 --- a/test/e2e/empty_dir.go +++ b/test/e2e/empty_dir.go @@ -313,7 +313,7 @@ func testPodWithVolume(image, path string, source *api.EmptyDirVolumeSource) *ap return &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, diff --git a/test/e2e/host_path.go b/test/e2e/host_path.go index 1a9a1290b4a..073c1176484 100644 --- a/test/e2e/host_path.go +++ b/test/e2e/host_path.go @@ -111,7 +111,7 @@ func testPodWithHostVol(path string, source *api.HostPathVolumeSource) *api.Pod return &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, diff --git a/test/e2e/kubelet_etc_hosts.go b/test/e2e/kubelet_etc_hosts.go index 5d5adb3bf29..091db9a3240 100644 --- a/test/e2e/kubelet_etc_hosts.go +++ b/test/e2e/kubelet_etc_hosts.go @@ -143,7 +143,7 @@ func (config *KubeletManagedHostConfig) createPodSpec(podName string) *api.Pod { pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, @@ -204,7 +204,7 @@ func (config *KubeletManagedHostConfig) createPodSpecWithHostNetwork(podName str pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, diff --git a/test/e2e/kubeproxy.go b/test/e2e/kubeproxy.go index 4021d3d4dae..17ac19d2d12 100644 --- a/test/e2e/kubeproxy.go +++ b/test/e2e/kubeproxy.go @@ -256,7 +256,7 @@ func (config *KubeProxyTestConfig) createNetShellPodSpec(podName string, node st pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, @@ -296,7 +296,7 @@ func (config *KubeProxyTestConfig) createTestPodSpec() *api.Pod { pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: testPodName, diff --git a/test/e2e/pd.go b/test/e2e/pd.go index 9270650ae8c..c35b7476fc5 100644 --- a/test/e2e/pd.go +++ b/test/e2e/pd.go @@ -412,7 +412,7 @@ func testPDPod(diskNames []string, targetHost string, readOnly bool, numContaine pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: "pd-test-" + string(util.NewUUID()), diff --git a/test/e2e/privileged.go b/test/e2e/privileged.go index 01325258120..2e2947fa437 100644 --- a/test/e2e/privileged.go +++ b/test/e2e/privileged.go @@ -102,7 +102,7 @@ func (config *PrivilegedPodTestConfig) createPrivilegedPodSpec() *api.Pod { pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: privilegedPodName, diff --git a/test/e2e/resize_nodes.go b/test/e2e/resize_nodes.go index 96e4bbf16e7..e27f01fc7b8 100644 --- a/test/e2e/resize_nodes.go +++ b/test/e2e/resize_nodes.go @@ -188,7 +188,7 @@ func rcByNameContainer(name string, replicas int, image string, labels map[strin return &api.ReplicationController{ TypeMeta: unversioned.TypeMeta{ Kind: "ReplicationController", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: name, diff --git a/test/e2e/util.go b/test/e2e/util.go index e35206c78ca..7e514e72780 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -2053,7 +2053,7 @@ func NewHostExecPodSpec(ns, name string) *api.Pod { pod := &api.Pod{ TypeMeta: unversioned.TypeMeta{ Kind: "Pod", - APIVersion: latest.GroupOrDie("").Version, + APIVersion: latest.GroupOrDie("").GroupVersion.Version, }, ObjectMeta: api.ObjectMeta{ Name: name, diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 6eda513d308..7782b978b73 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -126,8 +126,8 @@ func startMasterOrDie(masterConfig *master.Config) (*master.Master, *httptest.Se if masterConfig == nil { etcdClient := NewEtcdClient() storageVersions := make(map[string]string) - etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, latest.GroupOrDie("").GroupVersion, etcdtest.PathPrefix()) - storageVersions[""] = latest.GroupOrDie("").GroupVersion + etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, latest.GroupOrDie("").GroupVersion.String(), etcdtest.PathPrefix()) + storageVersions[""] = latest.GroupOrDie("").GroupVersion.String() if err != nil { glog.Fatalf("Failed to create etcd storage for master %v", err) }