NSXV: Handle requests ConnectionError exception

DNS failures cause requests module to raise a ConnectionError exception.
We should issue a retry upon this exception as DNS erros within a
network are normal.

Change-Id: Id543a55fbd7002f839981ba47909546ef229f5f9
This commit is contained in:
Kobi Samoray 2021-02-01 17:45:19 +02:00
parent 890b5db407
commit 1fddd8813b
3 changed files with 8 additions and 0 deletions

View File

@ -170,6 +170,9 @@ class VcnsApiHelper(object):
except requests.exceptions.Timeout:
raise exceptions.ResourceTimedOut(uri=uri)
except requests.exceptions.ConnectionError:
raise exceptions.ResourceConnectionError(uri=uri)
status = response.status_code
if 200 <= status < 300:

View File

@ -80,3 +80,7 @@ class ServiceConflict(VcnsApiException):
class AlreadyExists(VcnsApiException):
message = _("Resource %(resource)s already exists")
class ResourceConnectionError(VcnsApiException):
message = _("Resource %(uri)s connection error")

View File

@ -125,6 +125,7 @@ class Vcns(object):
self._normalized_global_objects = None
@retry_upon_exception(exceptions.ServiceConflict)
@retry_upon_exception(exceptions.ResourceConnectionError)
def _client_request(self, client, method, uri,
params, headers, encodeParams, timeout=None):
return client(method, uri, params, headers, encodeParams,