diff --git a/cinder/tests/unit/test_hitachi_hnas_backend.py b/cinder/tests/unit/test_hitachi_hnas_backend.py index 64f2f672bf9..fe2872653a9 100644 --- a/cinder/tests/unit/test_hitachi_hnas_backend.py +++ b/cinder/tests/unit/test_hitachi_hnas_backend.py @@ -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, diff --git a/cinder/volume/drivers/hitachi/hnas_backend.py b/cinder/volume/drivers/hitachi/hnas_backend.py index 61877aa2fd8..a72dff9418c 100644 --- a/cinder/volume/drivers/hitachi/hnas_backend.py +++ b/cinder/volume/drivers/hitachi/hnas_backend.py @@ -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: