Commit 31cd4c12 authored by Chao Xu's avatar Chao Xu

handle empty perferredVersion

parent f2db7d07
...@@ -124,7 +124,9 @@ func (d *DiscoveryClient) ServerGroups() (apiGroupList *unversioned.APIGroupList ...@@ -124,7 +124,9 @@ func (d *DiscoveryClient) ServerGroups() (apiGroupList *unversioned.APIGroupList
// ServerResourcesForGroupVersion returns the supported resources for a group and version. // ServerResourcesForGroupVersion returns the supported resources for a group and version.
func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *unversioned.APIResourceList, err error) { func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *unversioned.APIResourceList, err error) {
url := url.URL{} 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 url.Path = "/api/" + groupVersion
} else { } else {
url.Path = "/apis/" + groupVersion url.Path = "/apis/" + groupVersion
......
...@@ -29,6 +29,7 @@ import ( ...@@ -29,6 +29,7 @@ import (
"k8s.io/kubernetes/pkg/client/typed/discovery" "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/client/typed/dynamic" "k8s.io/kubernetes/pkg/client/typed/dynamic"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
utilerrors "k8s.io/kubernetes/pkg/util/errors"
"k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/util/sets"
"github.com/golang/glog" "github.com/golang/glog"
...@@ -459,11 +460,14 @@ func ServerPreferredNamespacedGroupVersionResources(discoveryClient discovery.Di ...@@ -459,11 +460,14 @@ func ServerPreferredNamespacedGroupVersionResources(discoveryClient discovery.Di
if err != nil { if err != nil {
return results, err return results, err
} }
allErrs := []error{}
for _, apiGroup := range serverGroupList.Groups { for _, apiGroup := range serverGroupList.Groups {
preferredVersion := apiGroup.PreferredVersion preferredVersion := apiGroup.PreferredVersion
apiResourceList, err := discoveryClient.ServerResourcesForGroupVersion(preferredVersion.GroupVersion) apiResourceList, err := discoveryClient.ServerResourcesForGroupVersion(preferredVersion.GroupVersion)
if err != nil { if err != nil {
return results, err allErrs = append(allErrs, err)
continue
} }
groupVersion := unversioned.GroupVersion{Group: apiGroup.Name, Version: preferredVersion.Version} groupVersion := unversioned.GroupVersion{Group: apiGroup.Name, Version: preferredVersion.Version}
for _, apiResource := range apiResourceList.APIResources { for _, apiResource := range apiResourceList.APIResources {
...@@ -476,5 +480,5 @@ func ServerPreferredNamespacedGroupVersionResources(discoveryClient discovery.Di ...@@ -476,5 +480,5 @@ func ServerPreferredNamespacedGroupVersionResources(discoveryClient discovery.Di
results = append(results, groupVersion.WithResource(apiResource.Name)) results = append(results, groupVersion.WithResource(apiResource.Name))
} }
} }
return results, nil return results, utilerrors.NewAggregate(allErrs)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment