diff --git a/pkg/api/unversioned/group_version.go b/pkg/api/unversioned/group_version.go index d5331541845..2cd68baa3f5 100644 --- a/pkg/api/unversioned/group_version.go +++ b/pkg/api/unversioned/group_version.go @@ -22,16 +22,16 @@ import ( "strings" ) -// TODO: We need to remove the GroupVersion in types.go. We use the name GroupAndVersion here temporarily. +// TODO: We need to remove the GroupVersion in types.go. We use the name GroupVersion here temporarily. // GroupVersion contains the "group" and the "version", which uniquely identifies the API. -type GroupAndVersion struct { +type GroupVersion struct { Group string Version string } // String puts "group" and "version" into a single "group/version" string. For the legacy v1 // it returns "v1". -func (gv *GroupAndVersion) String() string { +func (gv *GroupVersion) String() string { // special case of "v1" for backward compatibility if gv.Group == "" && gv.Version == "v1" { return gv.Version @@ -42,22 +42,22 @@ func (gv *GroupAndVersion) String() string { // ParseGroupVersion turns "group/version" string into a GroupVersion struct. It reports error // if it cannot parse the string. -func ParseGroupVersion(gv string) (GroupAndVersion, error) { +func ParseGroupVersion(gv string) (GroupVersion, error) { s := strings.Split(gv, "/") // "v1" is the only special case. Otherwise GroupVersion is expected to contain // one "/" dividing the string into two parts. switch { case len(s) == 1 && gv == "v1": - return GroupAndVersion{"", "v1"}, nil + return GroupVersion{"", "v1"}, nil case len(s) == 2: - return GroupAndVersion{s[0], s[1]}, nil + return GroupVersion{s[0], s[1]}, nil default: - return GroupAndVersion{}, fmt.Errorf("Unexpected GroupVersion string: %v", gv) + return GroupVersion{}, fmt.Errorf("Unexpected GroupVersion string: %v", gv) } } // MarshalJSON implements the json.Marshaller interface. -func (gv GroupAndVersion) MarshalJSON() ([]byte, error) { +func (gv GroupVersion) MarshalJSON() ([]byte, error) { s := gv.String() if strings.Count(s, "/") > 1 { return []byte{}, fmt.Errorf("illegal GroupVersion %v: contains more than one /", s) @@ -65,7 +65,7 @@ func (gv GroupAndVersion) MarshalJSON() ([]byte, error) { return json.Marshal(s) } -func (gv *GroupAndVersion) unmarshal(value []byte) error { +func (gv *GroupVersion) unmarshal(value []byte) error { var s string if err := json.Unmarshal(value, &s); err != nil { return err @@ -79,11 +79,11 @@ func (gv *GroupAndVersion) unmarshal(value []byte) error { } // UnmarshalJSON implements the json.Unmarshaller interface. -func (gv *GroupAndVersion) UnmarshalJSON(value []byte) error { +func (gv *GroupVersion) UnmarshalJSON(value []byte) error { return gv.unmarshal(value) } // UnmarshalTEXT implements the Ugorji's encoding.TextUnmarshaler interface. -func (gv *GroupAndVersion) UnmarshalText(value []byte) error { +func (gv *GroupVersion) UnmarshalText(value []byte) error { return gv.unmarshal(value) } diff --git a/pkg/api/unversioned/group_version_test.go b/pkg/api/unversioned/group_version_test.go index 3c56b469e04..4a26fbb106a 100644 --- a/pkg/api/unversioned/group_version_test.go +++ b/pkg/api/unversioned/group_version_test.go @@ -25,16 +25,16 @@ import ( ) type GroupVersionHolder struct { - GV GroupAndVersion `json:"val"` + GV GroupVersion `json:"val"` } func TestGroupVersionUnmarshalJSON(t *testing.T) { cases := []struct { input []byte - expect GroupAndVersion + expect GroupVersion }{ - {[]byte(`{"val": "v1"}`), GroupAndVersion{"", "v1"}}, - {[]byte(`{"val": "extensions/v1beta1"}`), GroupAndVersion{"extensions", "v1beta1"}}, + {[]byte(`{"val": "v1"}`), GroupVersion{"", "v1"}}, + {[]byte(`{"val": "extensions/v1beta1"}`), GroupVersion{"extensions", "v1beta1"}}, } for _, c := range cases { @@ -58,11 +58,11 @@ func TestGroupVersionUnmarshalJSON(t *testing.T) { func TestGroupVersionMarshalJSON(t *testing.T) { cases := []struct { - input GroupAndVersion + input GroupVersion expect []byte }{ - {GroupAndVersion{"", "v1"}, []byte(`{"val":"v1"}`)}, - {GroupAndVersion{"extensions", "v1beta1"}, []byte(`{"val":"extensions/v1beta1"}`)}, + {GroupVersion{"", "v1"}, []byte(`{"val":"v1"}`)}, + {GroupVersion{"extensions", "v1beta1"}, []byte(`{"val":"extensions/v1beta1"}`)}, } for _, c := range cases { diff --git a/pkg/api/unversioned/types.go b/pkg/api/unversioned/types.go index c90bf296571..a650b95339d 100644 --- a/pkg/api/unversioned/types.go +++ b/pkg/api/unversioned/types.go @@ -299,15 +299,15 @@ type APIGroup struct { // name is the name of the group. Name string `json:"name"` // versions are the versions supported in this group. - Versions []GroupVersion `json:"versions"` + Versions []GroupVersionForDiscovery `json:"versions"` // preferredVersion is the version preferred by the API server, which // probably is the storage version. - PreferredVersion GroupVersion `json:"preferredVersion,omitempty"` + PreferredVersion GroupVersionForDiscovery `json:"preferredVersion,omitempty"` } // GroupVersion contains the "group/version" and "version" string of a version. // It is made a struct to keep extensiblity. -type GroupVersion struct { +type GroupVersionForDiscovery struct { // groupVersion specifies the API group and version in the form "group/version" GroupVersion string `json:"groupVersion"` // version specifies the version in the form of "version". This is to save diff --git a/pkg/client/unversioned/client_test.go b/pkg/client/unversioned/client_test.go index d9eefd53c0f..640a24d3a4b 100644 --- a/pkg/client/unversioned/client_test.go +++ b/pkg/client/unversioned/client_test.go @@ -400,7 +400,7 @@ func TestGetServerResources(t *testing.T) { list = &unversioned.APIGroupList{ Groups: []unversioned.APIGroup{ { - Versions: []unversioned.GroupVersion{ + Versions: []unversioned.GroupVersionForDiscovery{ {GroupVersion: "extensions/v1beta1"}, }, }, diff --git a/pkg/client/unversioned/discovery_client.go b/pkg/client/unversioned/discovery_client.go index cc3eb6665e3..a9c0ed263a6 100644 --- a/pkg/client/unversioned/discovery_client.go +++ b/pkg/client/unversioned/discovery_client.go @@ -55,9 +55,9 @@ type DiscoveryClient struct { // Convert unversioned.APIVersions to unversioned.APIGroup. APIVersions is used by legacy v1, so // group would be "". func apiVersionsToAPIGroup(apiVersions *unversioned.APIVersions) (apiGroup unversioned.APIGroup) { - groupVersions := []unversioned.GroupVersion{} + groupVersions := []unversioned.GroupVersionForDiscovery{} for _, version := range apiVersions.Versions { - groupVersion := unversioned.GroupVersion{ + groupVersion := unversioned.GroupVersionForDiscovery{ GroupVersion: version, Version: version, } diff --git a/pkg/client/unversioned/helper_test.go b/pkg/client/unversioned/helper_test.go index fe4365245d2..2960cf6d592 100644 --- a/pkg/client/unversioned/helper_test.go +++ b/pkg/client/unversioned/helper_test.go @@ -385,7 +385,7 @@ func TestHelperGetServerAPIVersions(t *testing.T) { APIGroupList := unversioned.APIGroupList{ Groups: []unversioned.APIGroup{ { - Versions: []unversioned.GroupVersion{ + Versions: []unversioned.GroupVersionForDiscovery{ { GroupVersion: "group1/v1", }, @@ -395,7 +395,7 @@ func TestHelperGetServerAPIVersions(t *testing.T) { }, }, { - Versions: []unversioned.GroupVersion{ + Versions: []unversioned.GroupVersionForDiscovery{ { GroupVersion: "group2/v1", }, diff --git a/pkg/master/master.go b/pkg/master/master.go index 46dbfa522d5..f8425272abd 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -665,7 +665,7 @@ func (m *Master) init(c *Config) { if err != nil { glog.Fatalf("Unable to setup experimental api: %v", err) } - expAPIVersions := []unversioned.GroupVersion{ + expAPIVersions := []unversioned.GroupVersionForDiscovery{ { GroupVersion: expVersion.Version, Version: apiutil.GetVersion(expVersion.Version), @@ -678,7 +678,7 @@ func (m *Master) init(c *Config) { group := unversioned.APIGroup{ Name: g.Group, Versions: expAPIVersions, - PreferredVersion: unversioned.GroupVersion{GroupVersion: storageVersion, Version: apiutil.GetVersion(storageVersion)}, + PreferredVersion: unversioned.GroupVersionForDiscovery{GroupVersion: storageVersion, Version: apiutil.GetVersion(storageVersion)}, } apiserver.AddGroupWebService(m.handlerContainer, c.APIGroupPrefix+"/"+latest.GroupOrDie("extensions").Group, group) allGroups = append(allGroups, group) @@ -992,13 +992,13 @@ func (m *Master) InstallThirdPartyResource(rsrc *expapi.ThirdPartyResource) erro glog.Fatalf("Unable to setup thirdparty api: %v", err) } path := makeThirdPartyPath(group) - groupVersion := unversioned.GroupVersion{ + groupVersion := unversioned.GroupVersionForDiscovery{ GroupVersion: group + "/" + rsrc.Versions[0].Name, Version: rsrc.Versions[0].Name, } apiGroup := unversioned.APIGroup{ Name: group, - Versions: []unversioned.GroupVersion{groupVersion}, + Versions: []unversioned.GroupVersionForDiscovery{groupVersion}, } apiserver.AddGroupWebService(m.handlerContainer, path, apiGroup) m.addThirdPartyResourceStorage(path, thirdparty.Storage[strings.ToLower(kind)+"s"].(*thirdpartyresourcedataetcd.REST)) diff --git a/pkg/master/master_test.go b/pkg/master/master_test.go index 6e7d95eea42..618f493d62f 100644 --- a/pkg/master/master_test.go +++ b/pkg/master/master_test.go @@ -399,13 +399,13 @@ func TestDiscoveryAtAPIS(t *testing.T) { } expectGroupName := "extensions" - expectVersions := []unversioned.GroupVersion{ + expectVersions := []unversioned.GroupVersionForDiscovery{ { GroupVersion: testapi.Extensions.GroupAndVersion(), Version: testapi.Extensions.Version(), }, } - expectPreferredVersion := unversioned.GroupVersion{ + expectPreferredVersion := unversioned.GroupVersionForDiscovery{ GroupVersion: config.StorageVersions["extensions"], Version: apiutil.GetVersion(config.StorageVersions["extensions"]), }