|
23 | 23 | from urllib3.exceptions import ProtocolError, MaxRetryError
|
24 | 24 |
|
25 | 25 | from kubernetes import __version__
|
26 |
| -from .exceptions import NotFoundError, ResourceNotFoundError, ResourceNotUniqueError, ApiException |
| 26 | +from .exceptions import NotFoundError, ResourceNotFoundError, ResourceNotUniqueError, ApiException, ServiceUnavailableError |
27 | 27 | from .resource import Resource, ResourceList
|
28 | 28 |
|
29 | 29 |
|
@@ -155,7 +155,10 @@ def get_resources_for_api_version(self, prefix, group, version, preferred):
|
155 | 155 | subresources = {}
|
156 | 156 |
|
157 | 157 | path = '/'.join(filter(None, [prefix, group, version]))
|
158 |
| - resources_response = self.client.request('GET', path).resources or [] |
| 158 | + try: |
| 159 | + resources_response = self.client.request('GET', path).resources or [] |
| 160 | + except ServiceUnavailableError: |
| 161 | + resources_response = [] |
159 | 162 |
|
160 | 163 | resources_raw = list(filter(lambda resource: '/' not in resource['name'], resources_response))
|
161 | 164 | subresources_raw = list(filter(lambda resource: '/' in resource['name'], resources_response))
|
@@ -251,13 +254,11 @@ def __search(self, parts, resources, reqParams):
|
251 | 254 | # Check if we've requested resources for this group
|
252 | 255 | if not resourcePart.resources:
|
253 | 256 | prefix, group, version = reqParams[0], reqParams[1], part
|
254 |
| - try: |
255 |
| - resourcePart.resources = self.get_resources_for_api_version(prefix, |
256 |
| - group, part, resourcePart.preferred) |
257 |
| - except NotFoundError: |
258 |
| - raise ResourceNotFoundError |
| 257 | + resourcePart.resources = self.get_resources_for_api_version( |
| 258 | + prefix, group, part, resourcePart.preferred) |
| 259 | + |
259 | 260 | self._cache['resources'][prefix][group][version] = resourcePart
|
260 |
| - self.__update_cache=True |
| 261 | + self.__update_cache = True |
261 | 262 | return self.__search(parts[1:], resourcePart.resources, reqParams)
|
262 | 263 | elif isinstance(resourcePart, dict):
|
263 | 264 | # In this case parts [0] will be a specified prefix, group, version
|
|
0 commit comments