From 97dde581982b9d49122aee3630328fb6064c8609 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Mon, 11 Feb 2019 06:45:34 +0100 Subject: Update and enable Cloudify-based testcases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It switches from the Cloudify virtual machine to the community container which allows deploying vyos_vrouter and cloudify_ims. Last stable Cloudify OpenStack plugin (2.4.17) is now deployed. It also updates the Cloudify python package to latest release. It adds a delay before deleting the blueprint which may be improved in a second change (it allows enabling the testcase in the stable release). Change-Id: Ie48a2c9d2badab0d7ba0b9e7845f453fad335ef7 Signed-off-by: Cédric Ollivier --- functest/ci/download_images.sh | 1 - functest/ci/testcases.yaml | 2 -- functest/core/cloudify.py | 20 ++++++++++++++++---- functest/opnfv_tests/vnf/ims/cloudify_ims.py | 19 +++++++++++++++---- functest/opnfv_tests/vnf/router/cloudify_vrouter.py | 19 +++++++++++++++---- 5 files changed, 46 insertions(+), 15 deletions(-) (limited to 'functest') diff --git a/functest/ci/download_images.sh b/functest/ci/download_images.sh index 71da9a963..366699d7d 100644 --- a/functest/ci/download_images.sh +++ b/functest/ci/download_images.sh @@ -10,7 +10,6 @@ http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img -http://repository.cloudifysource.org/cloudify/18.10.4/community-release/cloudify-manager-community-18.10.4.qcow2 http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-aarch64-disk.img https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-arm64-uefi1.img http://cloud.centos.org/altarch/7/images/aarch64/CentOS-7-aarch64-GenericCloud.qcow2.xz diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml index 2e0018d8b..17f1afcef 100644 --- a/functest/ci/testcases.yaml +++ b/functest/ci/testcases.yaml @@ -552,7 +552,6 @@ tiers: project_name: functest criteria: 100 blocking: false - enabled: false description: >- This test case deploys an OpenSource vIMS solution from Clearwater using the Cloudify orchestrator. It also runs @@ -579,7 +578,6 @@ tiers: project_name: functest criteria: 100 blocking: false - enabled: false description: >- This test case is vRouter testing. run: diff --git a/functest/core/cloudify.py b/functest/core/cloudify.py index d9b3398e3..ac8e26743 100644 --- a/functest/core/cloudify.py +++ b/functest/core/cloudify.py @@ -27,15 +27,17 @@ class Cloudify(singlevm.SingleVm2): __logger = logging.getLogger(__name__) filename = ('/home/opnfv/functest/images/' - 'cloudify-manager-community-18.10.4.qcow2') + 'ubuntu-16.04-server-cloudimg-amd64-disk1.img') flavor_ram = 4096 flavor_vcpus = 2 flavor_disk = 40 - username = 'centos' + username = 'ubuntu' ssh_connect_loops = 12 create_server_timeout = 600 ports = [80, 443, 5671, 53333] + cloudify_container = "cloudifyplatform/community:19.01.24" + def __init__(self, **kwargs): """Initialize Cloudify testcase object.""" if "case_name" not in kwargs: @@ -54,10 +56,20 @@ class Cloudify(singlevm.SingleVm2): """ Deploy Cloudify Manager. """ + (_, stdout, stderr) = self.ssh.exec_command( + "sudo wget https://get.docker.com/ -O script.sh && " + "sudo chmod +x script.sh && " + "sudo ./script.sh && " + "sudo docker run --name cfy_manager_local -d " + "--restart unless-stopped -v /sys/fs/cgroup:/sys/fs/cgroup:ro " + "--tmpfs /run --tmpfs /run/lock --security-opt seccomp:unconfined " + "--cap-add SYS_ADMIN --network=host {}".format( + self.cloudify_container)) + self.__logger.debug("output:\n%s", stdout.read()) + self.__logger.debug("error:\n%s", stderr.read()) self.cfy_client = CloudifyClient( host=self.fip.floating_ip_address, - username='admin', password='admin', tenant='default_tenant', - api_version='v3') + username='admin', password='admin', tenant='default_tenant') self.__logger.info("Attemps running status of the Manager") secret_key = "foo" secret_value = "bar" diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.py b/functest/opnfv_tests/vnf/ims/cloudify_ims.py index bbb19694a..700823564 100644 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims.py +++ b/functest/opnfv_tests/vnf/ims/cloudify_ims.py @@ -44,6 +44,12 @@ class CloudifyIms(cloudify.Cloudify): quota_security_group_rule = 100 quota_port = 50 + cop_yaml = ("https://github.com/cloudify-cosmo/cloudify-openstack-plugin/" + "releases/download/2.14.7/plugin.yaml") + cop_wgn = ("https://github.com/cloudify-cosmo/cloudify-openstack-plugin/" + "releases/download/2.14.7/cloudify_openstack_plugin-2.14.7-py27" + "-none-linux_x86_64-centos-Core.wgn") + def __init__(self, **kwargs): """Initialize CloudifyIms testcase object.""" if "case_name" not in kwargs: @@ -152,10 +158,14 @@ class CloudifyIms(cloudify.Cloudify): scpc = scp.SCPClient(self.ssh.get_transport()) scpc.put(self.key_filename, remote_path='~/cloudify_ims.pem') (_, stdout, stderr) = self.ssh.exec_command( - "sudo cp ~/cloudify_ims.pem /etc/cloudify/ && " - "sudo chmod 444 /etc/cloudify/cloudify_ims.pem && " - "sudo yum install -y gcc python-devel python-cmd2 && " - "cfy status") + "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()) @@ -293,6 +303,7 @@ class CloudifyIms(cloudify.Cloudify): 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 diff --git a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py b/functest/opnfv_tests/vnf/router/cloudify_vrouter.py index a0145b801..39268d8f1 100644 --- a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py +++ b/functest/opnfv_tests/vnf/router/cloudify_vrouter.py @@ -40,6 +40,12 @@ class CloudifyVrouter(cloudify.Cloudify): flavor_alt_vcpus = 1 flavor_alt_disk = 50 + cop_yaml = ("https://github.com/cloudify-cosmo/cloudify-openstack-plugin/" + "releases/download/2.14.7/plugin.yaml") + cop_wgn = ("https://github.com/cloudify-cosmo/cloudify-openstack-plugin/" + "releases/download/2.14.7/cloudify_openstack_plugin-2.14.7-py27" + "-none-linux_x86_64-centos-Core.wgn") + def __init__(self, **kwargs): if "case_name" not in kwargs: kwargs["case_name"] = "vyos_vrouter" @@ -118,10 +124,14 @@ class CloudifyVrouter(cloudify.Cloudify): scpc = scp.SCPClient(self.ssh.get_transport()) scpc.put(self.key_filename, remote_path='~/cloudify_ims.pem') (_, stdout, stderr) = self.ssh.exec_command( - "sudo cp ~/cloudify_ims.pem /etc/cloudify/ && " - "sudo chmod 444 /etc/cloudify/cloudify_ims.pem && " - "sudo yum install -y gcc python-devel python-cmd2 && " - "cfy status") + "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()) @@ -240,6 +250,7 @@ class CloudifyVrouter(cloudify.Cloudify): 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 -- cgit 1.2.3-korg