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
(cherry picked from commit b8a05333dd)
This commit is contained in:
Monty Taylor 2016-09-20 12:31:37 +02:00 committed by Paul Belanger
parent 4072abac8d
commit 47f6ac356b
1 changed files with 2 additions and 1 deletions

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')