handle empty perferredVersion

This commit is contained in:
Chao Xu 2016-04-07 10:45:45 -07:00
parent f2db7d07a3
commit 31cd4c124d
2 changed files with 9 additions and 3 deletions

View File

@ -124,7 +124,9 @@ func (d *DiscoveryClient) ServerGroups() (apiGroupList *unversioned.APIGroupList
// ServerResourcesForGroupVersion returns the supported resources for a group and version.
func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *unversioned.APIResourceList, err error) {
url := url.URL{}
if groupVersion == "v1" {
if len(groupVersion) == 0 {
return nil, fmt.Errorf("groupVersion shouldn't be empty")
} else if groupVersion == "v1" {
url.Path = "/api/" + groupVersion
} else {
url.Path = "/apis/" + groupVersion

View File

@ -29,6 +29,7 @@ import (
"k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/client/typed/dynamic"
"k8s.io/kubernetes/pkg/runtime"
utilerrors "k8s.io/kubernetes/pkg/util/errors"
"k8s.io/kubernetes/pkg/util/sets"
"github.com/golang/glog"
@ -459,11 +460,14 @@ func ServerPreferredNamespacedGroupVersionResources(discoveryClient discovery.Di
if err != nil {
return results, err
}
allErrs := []error{}
for _, apiGroup := range serverGroupList.Groups {
preferredVersion := apiGroup.PreferredVersion
apiResourceList, err := discoveryClient.ServerResourcesForGroupVersion(preferredVersion.GroupVersion)
if err != nil {
return results, err
allErrs = append(allErrs, err)
continue
}
groupVersion := unversioned.GroupVersion{Group: apiGroup.Name, Version: preferredVersion.Version}
for _, apiResource := range apiResourceList.APIResources {
@ -476,5 +480,5 @@ func ServerPreferredNamespacedGroupVersionResources(discoveryClient discovery.Di
results = append(results, groupVersion.WithResource(apiResource.Name))
}
}
return results, nil
return results, utilerrors.NewAggregate(allErrs)
}