aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/vnf/ims
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2019-04-23 16:49:55 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2019-04-24 20:25:14 +0200
commit9dcc30874194382a25c66baf359b863c6e013caf (patch)
tree421fa4ee80964f775fc1d0c0008e0afaf1ebe8ea /functest/opnfv_tests/vnf/ims
parentb9048a25355e1d6c29c84ca10a3d859841468f50 (diff)
Refactor modules to avoid duplicated code
It also increases number of lines to warm about duplicated codes. Change-Id: I3914da8a90cbfe8fd024e9944c3adc8a617330d3 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'functest/opnfv_tests/vnf/ims')
-rw-r--r--functest/opnfv_tests/vnf/ims/clearwater.py9
-rw-r--r--functest/opnfv_tests/vnf/ims/cloudify_ims.py71
-rw-r--r--functest/opnfv_tests/vnf/ims/heat_ims.py25
3 files changed, 20 insertions, 85 deletions
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