From cbcc92a846108386803d07fbb5d9c7838889090a Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Wed, 14 Mar 2018 08:37:21 +0100 Subject: Refactor TempestCommon to simplify subclasses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8d265b6939861fd9d02a3d0f31aef53b9bfcb035 Signed-off-by: Cédric Ollivier --- functest/opnfv_tests/openstack/tempest/tempest.py | 43 +++++++++++++---------- 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'functest/opnfv_tests/openstack/tempest/tempest.py') diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py index 059def384..acab29d85 100644 --- a/functest/opnfv_tests/openstack/tempest/tempest.py +++ b/functest/opnfv_tests/openstack/tempest/tempest.py @@ -62,6 +62,7 @@ class TempestCommon(testcase.TestCase): self.res_dir = TempestCommon.TEMPEST_RESULTS_DIR self.raw_list = os.path.join(self.res_dir, 'test_raw_list.txt') self.list = os.path.join(self.res_dir, 'test_list.txt') + self.conf_file = None @staticmethod def read_file(filename): @@ -98,7 +99,7 @@ class TempestCommon(testcase.TestCase): result['num_failures'] = int(new_line[2]) return result - def generate_test_list(self, verifier_repo_dir): + def generate_test_list(self): """Generate test list based on the test mode.""" LOGGER.debug("Generating test case list...") if self.mode == 'custom': @@ -117,7 +118,7 @@ class TempestCommon(testcase.TestCase): testr_mode = self.mode cmd = ("cd {0};" "testr list-tests {1} > {2};" - "cd -;".format(verifier_repo_dir, + "cd -;".format(self.verifier_repo_dir, testr_mode, self.list)) functest_utils.execute_command(cmd) @@ -248,33 +249,39 @@ class TempestCommon(testcase.TestCase): subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - def run(self, **kwargs): + def configure(self): + """ + Create all openstack resources for tempest-based testcases and write + tempest.conf. + """ + if not os.path.exists(self.res_dir): + os.makedirs(self.res_dir) + resources = self.resources.create() + compute_cnt = snaps_utils.get_active_compute_cnt( + self.resources.os_creds) + self.conf_file = conf_utils.configure_verifier(self.deployment_dir) + conf_utils.configure_tempest_update_params( + self.conf_file, self.res_dir, + network_name=resources.get("network_name"), + image_id=resources.get("image_id"), + flavor_id=resources.get("flavor_id"), + compute_cnt=compute_cnt) + def run(self, **kwargs): self.start_time = time.time() try: - if not os.path.exists(self.res_dir): - os.makedirs(self.res_dir) - resources = self.resources.create() - compute_cnt = snaps_utils.get_active_compute_cnt( - self.resources.os_creds) - conf_utils.configure_tempest( - self.deployment_dir, self.res_dir, - network_name=resources.get("network_name"), - image_id=resources.get("image_id"), - flavor_id=resources.get("flavor_id"), - compute_cnt=compute_cnt) - self.generate_test_list(self.verifier_repo_dir) + self.configure() + self.generate_test_list() self.apply_tempest_blacklist() self.run_verifier_tests() self.parse_verifier_result() self.generate_report() res = testcase.TestCase.EX_OK - except Exception as err: # pylint: disable=broad-except - LOGGER.error('Error with run: %s', err) + except Exception: # pylint: disable=broad-except + LOGGER.exception('Error with run') res = testcase.TestCase.EX_RUN_ERROR finally: self.resources.cleanup() - self.stop_time = time.time() return res -- cgit 1.2.3-korg