Handle keystoneauth exceptions in retry logic

The retry_logic in do_request catches neutronclient errors, but if a
SessionClient is being used, nothing throws neutronclient errors -
instead keystoneauth Session throws keystoneauth exceptions.

Add the keystoneauth.exceptions.ConnectionError to the things that
handle the error and retry.

Change-Id: If16e50ee53279652fbdfc2d13d5509f46a54124a
This commit is contained in:
Monty Taylor 2016-09-20 12:31:37 +02:00 committed by Henry Gessau
parent 3c2925a4de
commit b8a05333dd

View File

@ -22,6 +22,7 @@ import re
import time
import debtcollector.renames
from keystoneauth1 import exceptions as ksa_exc
import requests
import six.moves.urllib.parse as urlparse
from six import string_types
@ -335,7 +336,7 @@ class ClientBase(object):
try:
return self.do_request(method, action, body=body,
headers=headers, params=params)
except exceptions.ConnectionFailed:
except (exceptions.ConnectionFailed, ksa_exc.ConnectionError):
# Exception has already been logged by do_request()
if i < self.retries:
_logger.debug('Retrying connection to Neutron service')