diff --git a/magnum/tests/functional/api/v1/test_bay.py b/magnum/tests/functional/api/v1/test_bay.py index 00f734b2c9..c8f558657f 100755 --- a/magnum/tests/functional/api/v1/test_bay.py +++ b/magnum/tests/functional/api/v1/test_bay.py @@ -107,7 +107,7 @@ class BayTest(base.BaseTempestTest): self.bays.append(model.uuid) self.bay_uuid = model.uuid if config.Config.copy_logs: - self.addOnException(self.copy_logs_handler( + self.addCleanup(self.copy_logs_handler( lambda: list( [self._get_bay_by_id(self.bay_uuid)[1].master_addresses, self._get_bay_by_id(self.bay_uuid)[1].node_addresses]), diff --git a/magnum/tests/functional/api/v1/test_cluster.py b/magnum/tests/functional/api/v1/test_cluster.py index 990cc41871..fc2a148111 100755 --- a/magnum/tests/functional/api/v1/test_cluster.py +++ b/magnum/tests/functional/api/v1/test_cluster.py @@ -107,7 +107,7 @@ class ClusterTest(base.BaseTempestTest): self.clusters.append(model.uuid) self.cluster_uuid = model.uuid if config.Config.copy_logs: - self.addOnException(self.copy_logs_handler( + self.addCleanup(self.copy_logs_handler( lambda: list( [self._get_cluster_by_id(model.uuid)[1].master_addresses, self._get_cluster_by_id(model.uuid)[1].node_addresses]), diff --git a/magnum/tests/functional/common/base.py b/magnum/tests/functional/common/base.py index f29720e14c..f568cfb027 100755 --- a/magnum/tests/functional/common/base.py +++ b/magnum/tests/functional/common/base.py @@ -42,11 +42,10 @@ class BaseMagnumTest(base.BaseTestCase): [[master_nodes], [slave_nodes]]. :param coe: the COE type of the nodes """ - def int_copy_logs(exec_info): + def int_copy_logs(): try: cls.LOG.info("Copying logs...") - fn = exec_info[2].tb_frame.f_locals['fn'] - func_name = fn.im_self._get_test_method().__name__ + func_name = "test" msg = ("Failed to copy logs for cluster") nodes_addresses = get_nodes_fn() diff --git a/magnum/tests/functional/python_client_base.py b/magnum/tests/functional/python_client_base.py index d724c4f3d6..aed5a9c124 100755 --- a/magnum/tests/functional/python_client_base.py +++ b/magnum/tests/functional/python_client_base.py @@ -265,12 +265,22 @@ extendedKeyUsage = clientAuth if not cls.cluster_template_kwargs.get('tls_disabled', False): # NOTE (wangbo) with multiple mangum-conductor processes, client # ca files should be created after completion of cluster ca_cert - cls._wait_on_status( - cls.cluster, - [None, "CREATE_IN_PROGRESS"], - ["CREATE_FAILED", "CREATE_COMPLETE"], - timeout=cls.cluster_complete_timeout - ) + try: + cls._wait_on_status( + cls.cluster, + [None, "CREATE_IN_PROGRESS"], + ["CREATE_FAILED", "CREATE_COMPLETE"], + timeout=cls.cluster_complete_timeout + ) + except Exception: + # copy logs if setUpClass fails, may be this will not work + # as master_address, node_address would not be available, if + # not we can get that from nova + if cls.copy_logs: + cls.copy_logs_handler( + cls._get_nodes, + cls.cluster_template.coe, + 'default') cls._create_tls_ca_files(cls.config_contents) @classmethod @@ -297,8 +307,9 @@ extendedKeyUsage = clientAuth self.useFixture(fixtures.Timeout(test_timeout, gentle=True)) + # Copy cluster nodes logs if self.copy_logs: - self.addOnException( + self.addCleanup( self.copy_logs_handler( self._get_nodes, self.cluster_template.coe,