From 203206d11aed71f640939120722d8cf2bbc816e4 Mon Sep 17 00:00:00 2001 From: deads2k Date: Mon, 24 Jul 2017 09:56:31 -0400 Subject: [PATCH] make it possible to allow discovery errors for controllers Kubernetes-commit: b7286f3188e997c98c89e1a8755b58ae69fbd4b0 --- discovery/discovery_client.go | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/discovery/discovery_client.go b/discovery/discovery_client.go index 0a6855c25..26f7e01c7 100644 --- a/discovery/discovery_client.go +++ b/discovery/discovery_client.go @@ -187,7 +187,7 @@ func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (r } // serverResources returns the supported resources for all groups and versions. -func (d *DiscoveryClient) serverResources(failEarly bool) ([]*metav1.APIResourceList, error) { +func (d *DiscoveryClient) serverResources() ([]*metav1.APIResourceList, error) { apiGroups, err := d.ServerGroups() if err != nil { return nil, err @@ -203,9 +203,6 @@ func (d *DiscoveryClient) serverResources(failEarly bool) ([]*metav1.APIResource if err != nil { // TODO: maybe restrict this to NotFound errors failedGroups[gv] = err - if failEarly { - return nil, &ErrGroupDiscoveryFailed{Groups: failedGroups} - } continue } @@ -249,7 +246,7 @@ func IsGroupDiscoveryFailedError(err error) bool { } // serverPreferredResources returns the supported resources with the version preferred by the server. -func (d *DiscoveryClient) serverPreferredResources(failEarly bool) ([]*metav1.APIResourceList, error) { +func (d *DiscoveryClient) serverPreferredResources() ([]*metav1.APIResourceList, error) { serverGroupList, err := d.ServerGroups() if err != nil { return nil, err @@ -269,9 +266,6 @@ func (d *DiscoveryClient) serverPreferredResources(failEarly bool) ([]*metav1.AP if err != nil { // TODO: maybe restrict this to NotFound errors failedGroups[groupVersion] = err - if failEarly { - return nil, &ErrGroupDiscoveryFailed{Groups: failedGroups} - } continue } @@ -316,9 +310,7 @@ func (d *DiscoveryClient) serverPreferredResources(failEarly bool) ([]*metav1.AP // ServerPreferredResources returns the supported resources with the version preferred by the // server. func (d *DiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { - return withRetries(defaultRetries, func(retryEarly bool) ([]*metav1.APIResourceList, error) { - return d.serverPreferredResources(retryEarly) - }) + return withRetries(defaultRetries, d.serverPreferredResources) } // ServerPreferredNamespacedResources returns the supported namespaced resources with the @@ -394,12 +386,11 @@ func (d *DiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) { } // withRetries retries the given recovery function in case the groups supported by the server change after ServerGroup() returns. -func withRetries(maxRetries int, f func(failEarly bool) ([]*metav1.APIResourceList, error)) ([]*metav1.APIResourceList, error) { +func withRetries(maxRetries int, f func() ([]*metav1.APIResourceList, error)) ([]*metav1.APIResourceList, error) { var result []*metav1.APIResourceList var err error for i := 0; i < maxRetries; i++ { - failEarly := i < maxRetries-1 - result, err = f(failEarly) + result, err = f() if err == nil { return result, nil }