From b21dede23cb7577497fb7adf2775a77c45a37e36 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Thu, 6 Dec 2018 20:32:11 +0100 Subject: Remove duplicated code in vnfs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It mainly leverages on functest_utils instead of duplicating. Change-Id: I97dc9215a835d3e7f1527b565132f667f09f2b7e Signed-off-by: Cédric Ollivier (cherry picked from commit 555956f1d19800114a6f422de78816859aaa7bdc) --- .../opnfv_tests/vnf/router/cloudify_vrouter.py | 70 ++-------------------- 1 file changed, 5 insertions(+), 65 deletions(-) (limited to 'functest/opnfv_tests/vnf/router/cloudify_vrouter.py') diff --git a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py b/functest/opnfv_tests/vnf/router/cloudify_vrouter.py index e8c8632bd..a0145b801 100644 --- a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py +++ b/functest/opnfv_tests/vnf/router/cloudify_vrouter.py @@ -15,7 +15,6 @@ import logging import os import time -from cloudify_rest_client.executions import Execution import pkg_resources import scp @@ -181,8 +180,8 @@ class CloudifyVrouter(cloudify.Cloudify): descriptor.get('name'), descriptor.get('name'), self.vnf.get('inputs')) - wait_for_execution( - self.cfy_client, get_execution_id( + cloudify.wait_for_execution( + self.cfy_client, cloudify.get_execution_id( self.cfy_client, descriptor.get('name')), self.__logger, timeout=7200) @@ -190,7 +189,7 @@ class CloudifyVrouter(cloudify.Cloudify): execution = self.cfy_client.executions.start( descriptor.get('name'), 'install') # Show execution log - execution = wait_for_execution( + execution = cloudify.wait_for_execution( self.cfy_client, execution, self.__logger) duration = time.time() - start_time @@ -237,7 +236,8 @@ class CloudifyVrouter(cloudify.Cloudify): execution = self.cfy_client.executions.start( dep_name, 'uninstall', parameters=dict(ignore_failure=True)) - wait_for_execution(self.cfy_client, execution, self.__logger) + cloudify.wait_for_execution( + self.cfy_client, execution, self.__logger) self.cfy_client.deployments.delete( self.vnf['descriptor'].get('name')) self.cfy_client.blueprints.delete( @@ -249,63 +249,3 @@ class CloudifyVrouter(cloudify.Cloudify): if self.flavor_alt: self.orig_cloud.delete_flavor(self.flavor_alt.id) super(CloudifyVrouter, self).clean() - - -def wait_for_execution(client, execution, logger, timeout=7200, ): - """Wait for a workflow execution on Cloudify Manager.""" - # if execution already ended - return without waiting - if execution.status in Execution.END_STATES: - return execution - - if timeout is not None: - deadline = time.time() + timeout - - # Poll for execution status and execution logs, until execution ends - # and we receive an event of type in WORKFLOW_END_TYPES - offset = 0 - batch_size = 50 - event_list = [] - execution_ended = False - while True: - event_list = client.events.list( - execution_id=execution.id, _offset=offset, _size=batch_size, - include_logs=True, sort='@timestamp').items - - offset = offset + len(event_list) - for event in event_list: - logger.debug(event.get('message')) - - if timeout is not None: - if time.time() > deadline: - raise RuntimeError( - 'execution of operation {0} for deployment {1} ' - 'timed out'.format(execution.workflow_id, - execution.deployment_id)) - else: - # update the remaining timeout - timeout = deadline - time.time() - - if not execution_ended: - execution = client.executions.get(execution.id) - execution_ended = execution.status in Execution.END_STATES - - if execution_ended: - break - - time.sleep(5) - - return execution - - -def get_execution_id(client, deployment_id): - """ - Get the execution id of a env preparation. - network, security group, fip, VM creation - """ - executions = client.executions.list(deployment_id=deployment_id) - for execution in executions: - if execution.workflow_id == 'create_deployment_environment': - return execution - raise RuntimeError('Failed to get create_deployment_environment ' - 'workflow execution.' - 'Available executions: {0}'.format(executions)) -- cgit 1.2.3-korg