HNAS driver: retry on Connection reset fix

When HNAS driver is not using the SSH option and there are lots of exports in
the backend, a exception of "Connection reset" is eventually raised in the
driver initialization.
This patch makes the HNAS driver retries when this exception is raised.

Change-Id: Ia6306d5d2d24556135505ddc33174f57c86d8555
Closes-Bug: 1541941
This commit is contained in:
Adriano Rosso 2016-02-04 14:18:17 -02:00
parent 4cfed22bf8
commit 15a2752d51
2 changed files with 15 additions and 1 deletions

View File

@ -240,6 +240,8 @@ File System : fs1 \n\
File System Mounted : YES \n\
Logical Unit Mounted: No"
HNAS_RESULT27 = "Connection reset"
HNAS_CMDS = {
('ssh', '0.0.0.0', 'supervisor', 'supervisor', 'evsfs', 'list'):
@ -376,6 +378,14 @@ class HDSHNASBendTest(test.TestCase):
'ssh', '0.0.0.0', 'supervisor', 'supervisor',
'df', '-a')
m_utl.side_effect = putils.ProcessExecutionError(stdout='',
stderr=HNAS_RESULT27,
exit_code=255)
self.hnas_bend.drv_configs['ssh_enabled'] = 'False'
self.assertRaises(exception.HNASConnError, self.hnas_bend.run_cmd,
'ssh', '0.0.0.0', 'supervisor', 'supervisor',
'df', '-a')
# Test exception throwing when using SSH
m_ssh.side_effect = putils.ProcessExecutionError(stdout='',
stderr=HNAS_RESULT22,

View File

@ -68,8 +68,12 @@ class HnasBackend(object):
LOG.debug("SSC connection error!")
msg = _("Failed to establish SSC connection.")
raise exception.HNASConnError(msg)
elif 'Connection reset' in e.stderr:
LOG.debug("HNAS connection reset!")
msg = _("HNAS has disconnected SSC")
raise exception.HNASConnError(msg)
else:
raise putils.ProcessExecutionError
raise
else:
if self.drv_configs['cluster_admin_ip0'] is None: