stop duplicating preferred version order

Kubernetes-commit: a89291a5dec0b63809b875e912b1563d50f86dba
This commit is contained in:
David Eads 2018-04-26 09:38:43 -04:00 committed by Kubernetes Publisher
parent 9bda5f118f
commit 3fa442d40a
4 changed files with 11 additions and 14 deletions

View File

@ -358,10 +358,10 @@ func (s *GenericAPIServer) InstallLegacyAPIGroup(apiPrefix string, apiGroupInfo
func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error { func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error {
// Do not register empty group or empty version. Doing so claims /apis/ for the wrong entity to be returned. // Do not register empty group or empty version. Doing so claims /apis/ for the wrong entity to be returned.
// Catching these here places the error much closer to its origin // Catching these here places the error much closer to its origin
if len(apiGroupInfo.GroupMeta.GroupVersion.Group) == 0 { if len(apiGroupInfo.GroupMeta.GroupVersions[0].Group) == 0 {
return fmt.Errorf("cannot register handler with an empty group for %#v", *apiGroupInfo) return fmt.Errorf("cannot register handler with an empty group for %#v", *apiGroupInfo)
} }
if len(apiGroupInfo.GroupMeta.GroupVersion.Version) == 0 { if len(apiGroupInfo.GroupMeta.GroupVersions[0].Version) == 0 {
return fmt.Errorf("cannot register handler with an empty version for %#v", *apiGroupInfo) return fmt.Errorf("cannot register handler with an empty version for %#v", *apiGroupInfo)
} }
@ -384,11 +384,11 @@ func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error {
}) })
} }
preferredVersionForDiscovery := metav1.GroupVersionForDiscovery{ preferredVersionForDiscovery := metav1.GroupVersionForDiscovery{
GroupVersion: apiGroupInfo.GroupMeta.GroupVersion.String(), GroupVersion: apiGroupInfo.GroupMeta.GroupVersions[0].String(),
Version: apiGroupInfo.GroupMeta.GroupVersion.Version, Version: apiGroupInfo.GroupMeta.GroupVersions[0].Version,
} }
apiGroup := metav1.APIGroup{ apiGroup := metav1.APIGroup{
Name: apiGroupInfo.GroupMeta.GroupVersion.Group, Name: apiGroupInfo.GroupMeta.GroupVersions[0].Group,
Versions: apiVersionsForDiscovery, Versions: apiVersionsForDiscovery,
PreferredVersion: preferredVersionForDiscovery, PreferredVersion: preferredVersionForDiscovery,
} }

View File

@ -164,7 +164,6 @@ func TestInstallAPIGroups(t *testing.T) {
mapper.Add(gv.WithKind(kind), meta.RESTScopeNamespace) mapper.Add(gv.WithKind(kind), meta.RESTScopeNamespace)
} }
groupMeta := apimachinery.GroupMeta{ groupMeta := apimachinery.GroupMeta{
GroupVersion: gv,
GroupVersions: []schema.GroupVersion{gv}, GroupVersions: []schema.GroupVersion{gv},
RESTMapper: mapper, RESTMapper: mapper,
InterfacesFor: interfacesFor, InterfacesFor: interfacesFor,
@ -199,7 +198,7 @@ func TestInstallAPIGroups(t *testing.T) {
for _, api := range apis[1:] { for _, api := range apis[1:] {
err = s.InstallAPIGroup(&api) err = s.InstallAPIGroup(&api)
assert.NoError(err) assert.NoError(err)
groupPaths = append(groupPaths, APIGroupPrefix+"/"+api.GroupMeta.GroupVersion.Group) // /apis/<group> groupPaths = append(groupPaths, APIGroupPrefix+"/"+api.GroupMeta.GroupVersions[0].Group) // /apis/<group>
} }
server := httptest.NewServer(s.Handler) server := httptest.NewServer(s.Handler)
@ -240,19 +239,19 @@ func TestInstallAPIGroups(t *testing.T) {
continue continue
} }
if got, expected := group.Name, info.GroupMeta.GroupVersion.Group; got != expected { if got, expected := group.Name, info.GroupMeta.GroupVersions[0].Group; got != expected {
t.Errorf("[%d] unexpected group name at path %q: got=%q expected=%q", i, path, got, expected) t.Errorf("[%d] unexpected group name at path %q: got=%q expected=%q", i, path, got, expected)
continue continue
} }
if got, expected := group.PreferredVersion.Version, info.GroupMeta.GroupVersion.Version; got != expected { if got, expected := group.PreferredVersion.Version, info.GroupMeta.GroupVersions[0].Version; got != expected {
t.Errorf("[%d] unexpected group version at path %q: got=%q expected=%q", i, path, got, expected) t.Errorf("[%d] unexpected group version at path %q: got=%q expected=%q", i, path, got, expected)
continue continue
} }
} }
// should serve APIResourceList at group path + /<group-version> // should serve APIResourceList at group path + /<group-version>
path = path + "/" + info.GroupMeta.GroupVersion.Version path = path + "/" + info.GroupMeta.GroupVersions[0].Version
resp, err = http.Get(server.URL + path) resp, err = http.Get(server.URL + path)
if err != nil { if err != nil {
t.Errorf("[%d] unexpected error getting path %q path: %v", i, path, err) t.Errorf("[%d] unexpected error getting path %q path: %v", i, path, err)
@ -274,7 +273,7 @@ func TestInstallAPIGroups(t *testing.T) {
continue continue
} }
if got, expected := resources.GroupVersion, info.GroupMeta.GroupVersion.String(); got != expected { if got, expected := resources.GroupVersion, info.GroupMeta.GroupVersions[0].String(); got != expected {
t.Errorf("[%d] unexpected groupVersion at path %q: got=%q expected=%q", i, path, got, expected) t.Errorf("[%d] unexpected groupVersion at path %q: got=%q expected=%q", i, path, got, expected)
continue continue
} }

View File

@ -169,11 +169,9 @@ func newFakeRegistry() *registered.APIRegistrationManager {
registry := registered.NewAPIRegistrationManager() registry := registered.NewAPIRegistrationManager()
registry.RegisterGroup(apimachinery.GroupMeta{ registry.RegisterGroup(apimachinery.GroupMeta{
GroupVersion: apiv1.SchemeGroupVersion,
GroupVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion}, GroupVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion},
}) })
registry.RegisterGroup(apimachinery.GroupMeta{ registry.RegisterGroup(apimachinery.GroupMeta{
GroupVersion: extensionsapiv1beta1.SchemeGroupVersion,
GroupVersions: []schema.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, GroupVersions: []schema.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion},
}) })
registry.RegisterVersions([]schema.GroupVersion{apiv1.SchemeGroupVersion, extensionsapiv1beta1.SchemeGroupVersion}) registry.RegisterVersions([]schema.GroupVersion{apiv1.SchemeGroupVersion, extensionsapiv1beta1.SchemeGroupVersion})

View File

@ -89,7 +89,7 @@ func (o *DefaultResourceEncodingConfig) StorageEncodingFor(resource schema.Group
if !groupExists { if !groupExists {
// return the most preferred external version for the group // return the most preferred external version for the group
return groupMeta.GroupVersion, nil return groupMeta.GroupVersions[0], nil
} }
resourceOverride, resourceExists := groupEncoding.ExternalResourceEncodings[resource.Resource] resourceOverride, resourceExists := groupEncoding.ExternalResourceEncodings[resource.Resource]