From 9dcc30874194382a25c66baf359b863c6e013caf Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Tue, 23 Apr 2019 16:49:55 +0200 Subject: Refactor modules to avoid duplicated code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It also increases number of lines to warm about duplicated codes. Change-Id: I3914da8a90cbfe8fd024e9944c3adc8a617330d3 Signed-off-by: Cédric Ollivier --- functest/opnfv_tests/vnf/ims/clearwater.py | 9 +++- functest/opnfv_tests/vnf/ims/cloudify_ims.py | 71 ++++------------------------ functest/opnfv_tests/vnf/ims/heat_ims.py | 25 ++-------- 3 files changed, 20 insertions(+), 85 deletions(-) (limited to 'functest/opnfv_tests/vnf/ims') diff --git a/functest/opnfv_tests/vnf/ims/clearwater.py b/functest/opnfv_tests/vnf/ims/clearwater.py index 605ba8a2a..b05f8e7d6 100644 --- a/functest/opnfv_tests/vnf/ims/clearwater.py +++ b/functest/opnfv_tests/vnf/ims/clearwater.py @@ -205,7 +205,12 @@ class ClearwaterTesting(object): vims_test_result["skipped"] = int(grp.group(3)) vims_test_result['passed'] = ( int(grp.group(2)) - int(grp.group(3)) - int(grp.group(1))) + if vims_test_result['total'] - vims_test_result['skipped'] > 0: + vnf_test_rate = vims_test_result['passed'] / ( + vims_test_result['total'] - vims_test_result['skipped']) + else: + vnf_test_rate = 0 except Exception: # pylint: disable=broad-except self.logger.exception("Cannot parse live tests results") - return None - return vims_test_result + return None, 0 + return vims_test_result, vnf_test_rate diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.py b/functest/opnfv_tests/vnf/ims/cloudify_ims.py index 77a4eaa74..8e3ec3e2b 100644 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims.py +++ b/functest/opnfv_tests/vnf/ims/cloudify_ims.py @@ -16,7 +16,6 @@ import os import time import pkg_resources -import scp import six from functest.core import cloudify @@ -154,20 +153,8 @@ class CloudifyIms(cloudify.Cloudify): duration = time.time() - start_time - self.__logger.info("Put private keypair in manager") - scpc = scp.SCPClient(self.ssh.get_transport()) - scpc.put(self.key_filename, remote_path='~/cloudify_ims.pem') - (_, stdout, stderr) = self.ssh.exec_command( - "sudo docker exec cfy_manager_local " - "cfy plugins upload -y {} {} && " - "sudo docker cp ~/cloudify_ims.pem " - "cfy_manager_local:/etc/cloudify/ && " - "sudo docker exec cfy_manager_local " - "chmod 444 /etc/cloudify/cloudify_ims.pem && " - "sudo docker exec cfy_manager_local cfy status".format( - self.cop_yaml, self.cop_wgn)) - self.__logger.info("output:\n%s", stdout.read()) - self.__logger.info("error:\n%s", stderr.read()) + self.put_private_key() + self.upload_cfy_plugins(self.cop_yaml, self.cop_wgn) self.details['orchestrator'].update(status='PASS', duration=duration) @@ -249,65 +236,23 @@ class CloudifyIms(cloudify.Cloudify): def test_vnf(self): """Run test on clearwater ims instance.""" start_time = time.time() - dns_ip = self.cfy_client.deployments.outputs.get( self.vnf['descriptor'].get('name'))['outputs']['dns_ip'] - if not dns_ip: return False - - short_result = self.clearwater.run_clearwater_live_test( - dns_ip=dns_ip, - public_domain=self.vnf['inputs']["public_domain"]) + short_result, vnf_test_rate = self.clearwater.run_clearwater_live_test( + dns_ip=dns_ip, public_domain=self.vnf['inputs']["public_domain"]) duration = time.time() - start_time self.__logger.info(short_result) - self.details['test_vnf'].update(result=short_result, - duration=duration) - try: - vnf_test_rate = short_result['passed'] / ( - short_result['total'] - short_result['skipped']) - # orchestrator + vnf + test_vnf - self.result += vnf_test_rate / 3 * 100 - except ZeroDivisionError: - self.__logger.error("No test has been executed") + self.details['test_vnf'].update(result=short_result, duration=duration) + self.result += vnf_test_rate / 3 * 100 + if vnf_test_rate == 0: self.details['test_vnf'].update(status='FAIL') - return False - except Exception: # pylint: disable=broad-except - self.__logger.exception("Cannot calculate results") - self.details['test_vnf'].update(status='FAIL') - return False return True if vnf_test_rate > 0 else False def clean(self): """Clean created objects/functions.""" - try: - dep_name = self.vnf['descriptor'].get('name') - # kill existing execution - self.__logger.info('Deleting the current deployment') - exec_list = self.cfy_client.executions.list() - for execution in exec_list: - if execution['status'] == "started": - try: - self.cfy_client.executions.cancel( - execution['id'], force=True) - except Exception: # pylint: disable=broad-except - self.__logger.warn("Can't cancel the current exec") - - execution = self.cfy_client.executions.start( - dep_name, - 'uninstall', - parameters=dict(ignore_failure=True), - force=True) - - cloudify.wait_for_execution( - self.cfy_client, execution, self.__logger) - self.cfy_client.deployments.delete( - self.vnf['descriptor'].get('name')) - time.sleep(10) - self.cfy_client.blueprints.delete( - self.vnf['descriptor'].get('name')) - except Exception: # pylint: disable=broad-except - self.__logger.exception("Some issue during the undeployment ..") + self.kill_existing_execution(self.vnf['descriptor'].get('name')) if self.image_alt: self.cloud.delete_image(self.image_alt) if self.flavor_alt: diff --git a/functest/opnfv_tests/vnf/ims/heat_ims.py b/functest/opnfv_tests/vnf/ims/heat_ims.py index 7ad887bd0..cce1a330b 100644 --- a/functest/opnfv_tests/vnf/ims/heat_ims.py +++ b/functest/opnfv_tests/vnf/ims/heat_ims.py @@ -216,34 +216,19 @@ class HeatIms(singlevm.VmReady2): def test_vnf(self): """Run test on clearwater ims instance.""" start_time = time.time() - outputs = self.cloud.get_stack(self.stack.id).outputs self.__logger.debug("stack outputs: %s", outputs) dns_ip = re.findall(r'[0-9]+(?:\.[0-9]+){3}', str(outputs))[0] - if not dns_ip: return False - - short_result = self.clearwater.run_clearwater_live_test( - dns_ip=dns_ip, - public_domain=self.vnf['parameters']["zone"]) + short_result, vnf_test_rate = self.clearwater.run_clearwater_live_test( + dns_ip=dns_ip, public_domain=self.vnf['parameters']["zone"]) duration = time.time() - start_time self.__logger.info(short_result) - self.details['test_vnf'] = dict(result=short_result, - duration=duration) - try: - vnf_test_rate = short_result['passed'] / ( - short_result['total'] - short_result['skipped']) - # orchestrator + vnf + test_vnf - self.result += vnf_test_rate / 3 * 100 - except ZeroDivisionError: - self.__logger.error("No test has been executed") + self.details['test_vnf'] = dict(result=short_result, duration=duration) + self.result += vnf_test_rate / 3 * 100 + if vnf_test_rate == 0: self.details['test_vnf'].update(status='FAIL') - return False - except Exception: # pylint: disable=broad-except - self.__logger.exception("Cannot calculate results") - self.details['test_vnf'].update(status='FAIL') - return False self._monit() return True if vnf_test_rate > 0 else False -- cgit 1.2.3-korg