Merge "Fixes the EQL driver CI tests AttributeError"

This commit is contained in:
Jenkins 2015-02-05 02:07:43 +00:00 committed by Gerrit Code Review
commit d3712bc2dd
2 changed files with 24 additions and 21 deletions

View File

@ -341,8 +341,10 @@ class DellEQLSanISCSIDriverTestCase(test.TestCase):
password="test",
min_size=1,
max_size=1)
self.mock_object(sshpool.item(), 'close')
self.driver.sshpool = mock.Mock(return_value=sshpool)
ssh = mock.Mock(paramiko.SSHClient)
self.driver.sshpool.item().__enter__ = mock.Mock(return_value=ssh)
self.driver.sshpool.item().__exit__ = mock.Mock(return_value=False)
# now call the execute
self.assertRaises(exception.VolumeBackendAPIException,
self.driver._eql_execute, "fake command")
@ -363,8 +365,10 @@ class DellEQLSanISCSIDriverTestCase(test.TestCase):
password="test",
min_size=1,
max_size=1)
self.mock_object(sshpool.item(), 'close')
self.driver.sshpool = mock.Mock(return_value=sshpool)
ssh = mock.Mock(paramiko.SSHClient)
self.driver.sshpool.item().__enter__ = mock.Mock(return_value=ssh)
self.driver.sshpool.item().__exit__ = mock.Mock(return_value=False)
# mocks for _ssh_execute and _get_output
self.mock_object(self.driver, '_get_output',
mock.Mock(side_effect=exception.

View File

@ -211,25 +211,24 @@ class DellEQLSanISCSIDriver(SanISCSIDriver):
max_size=max_size)
try:
total_attempts = attempts
ssh = self.sshpool.item()
while attempts > 0:
attempts -= 1
try:
LOG.info(_LI('EQL-driver: executing "%s".'), command)
return self._ssh_execute(
ssh, command,
timeout=self.configuration.eqlx_cli_timeout)
except processutils.ProcessExecutionError:
raise
except Exception as e:
LOG.exception(e)
greenthread.sleep(random.randint(20, 500) / 100.0)
msg = (_("SSH Command failed after '%(total_attempts)r' "
"attempts : '%(command)s'") %
{'total_attempts': total_attempts - attempts,
'command': command})
ssh.close()
raise exception.VolumeBackendAPIException(data=msg)
with self.sshpool.item() as ssh:
while attempts > 0:
attempts -= 1
try:
LOG.info(_LI('EQL-driver: executing "%s".'), command)
return self._ssh_execute(
ssh, command,
timeout=self.configuration.eqlx_cli_timeout)
except processutils.ProcessExecutionError:
raise
except Exception as e:
LOG.exception(e)
greenthread.sleep(random.randint(20, 500) / 100.0)
msg = (_("SSH Command failed after '%(total_attempts)r' "
"attempts : '%(command)s'") %
{'total_attempts': total_attempts - attempts,
'command': command})
raise exception.VolumeBackendAPIException(data=msg)
except Exception:
with excutils.save_and_reraise_exception():