py3: Fix exception types
Except keywords expects a tuple containing only base classes,
or a base class as the exception type in Python3.
This is compatible with Python2.
Convert lists to tuples, and expand nested tuples.
Suppress pylint warnings.
This was taken from d41f3fe19939f1759ca3cf73874724bd75eebe43
in the starlingx/config repo.
Story: 2006796
Task: 42866
Signed-off-by: Charles Short <charles.short@windriver.com>
Change-Id: I129302b5a6199b705b3533ffb77e7700e815df2f
(cherry picked from commit 702ea92596
)
This commit is contained in:
parent
bef7df1785
commit
4d9b787546
|
@ -488,7 +488,7 @@ class Connection(object):
|
|||
"%(hostname)s:%(port)d") % params)
|
||||
try:
|
||||
self.connection.release()
|
||||
except self.connection_errors:
|
||||
except tuple(self.connection_errors): # pylint: disable=catching-non-exception
|
||||
pass
|
||||
# Setting this in case the next statement fails, though
|
||||
# it shouldn't be doing any network operations, yet.
|
||||
|
@ -523,18 +523,22 @@ class Connection(object):
|
|||
while True:
|
||||
params = self.params_list[attempt % len(self.params_list)]
|
||||
attempt += 1
|
||||
e = None
|
||||
try:
|
||||
self._connect(params)
|
||||
return
|
||||
except (IOError, self.connection_errors) as e:
|
||||
pass
|
||||
except Exception as e:
|
||||
except IOError as ex:
|
||||
e = ex
|
||||
except tuple(self.connection_errors) as ex: # pylint: disable=catching-non-exception
|
||||
e = ex
|
||||
except Exception as ex:
|
||||
# NOTE(comstud): Unfortunately it's possible for amqplib
|
||||
# to return an error not covered by its transport
|
||||
# connection_errors in the case of a timeout waiting for
|
||||
# a protocol response. (See paste link in LP888621)
|
||||
# So, we check all exceptions for 'timeout' in them
|
||||
# and try to reconnect in this case.
|
||||
e = ex
|
||||
if 'timeout' not in str(e):
|
||||
raise
|
||||
|
||||
|
@ -569,7 +573,16 @@ class Connection(object):
|
|||
while True:
|
||||
try:
|
||||
return method(*args, **kwargs)
|
||||
except (self.channel_errors, self.connection_errors, socket.timeout, IOError) as e:
|
||||
except tuple(self.channel_errors) as e: # pylint: disable=catching-non-exception
|
||||
if error_callback:
|
||||
error_callback(e)
|
||||
except tuple(self.connection_errors) as e: # pylint: disable=catching-non-exception
|
||||
if error_callback:
|
||||
error_callback(e)
|
||||
except socket.timeout as e:
|
||||
if error_callback:
|
||||
error_callback(e)
|
||||
except IOError as e:
|
||||
if error_callback:
|
||||
error_callback(e)
|
||||
except Exception as e:
|
||||
|
|
Loading…
Reference in New Issue