diff --git a/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py b/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py index 59e0b5bdd29..2df0d73f5f5 100644 --- a/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py +++ b/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py @@ -698,7 +698,9 @@ class HPE3PARBaseDriver(test.TestCase): mock.call.login(HPE3PAR_USER_NAME, HPE3PAR_USER_PASS)] get_id_login = [ + mock.call.login(HPE3PAR_USER_NAME, HPE3PAR_USER_PASS), mock.call.getWsApiVersion(), + mock.call.logout(), mock.call.login(HPE3PAR_USER_NAME, HPE3PAR_USER_PASS), mock.call.getStorageSystemInfo()] diff --git a/cinder/volume/drivers/hpe/hpe_3par_common.py b/cinder/volume/drivers/hpe/hpe_3par_common.py index 14de0fd17a9..9b78ed77af9 100644 --- a/cinder/volume/drivers/hpe/hpe_3par_common.py +++ b/cinder/volume/drivers/hpe/hpe_3par_common.py @@ -310,11 +310,12 @@ class HPE3PARCommon(object): 4.0.20 - Use small QoS Latency value. Bug #2018994 4.0.21 - Fix issue seen during retype/migrate. Bug #2026718 4.0.22 - Fixed clone of replicated volume. Bug #2021941 + 4.0.23 - Fixed login/logout while accessing wsapi. Bug #2068795 """ - VERSION = "4.0.22" + VERSION = "4.0.23" stats = {} @@ -436,8 +437,9 @@ class HPE3PARCommon(object): raise exception.InvalidInput(reason=msg) def client_logout(self): - LOG.debug("Disconnect from 3PAR REST and SSH %s", self.uuid) - self.client.logout() + if self.client is not None: + LOG.debug("Disconnect from 3PAR REST and SSH %s", self.uuid) + self.client.logout() def _create_replication_client(self, remote_array): try: @@ -492,6 +494,8 @@ class HPE3PARCommon(object): if self._replication_enabled: self.client = None raise exception.InvalidInput(ex) + finally: + self.client_logout() if context: # The context is None except at driver startup.