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 --- docker/vnf/Dockerfile | 5 +++-- docker/vnf/testcases.yaml | 2 -- 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 +++++++++++++++---- upper-constraints.txt | 2 +- 8 files changed, 50 insertions(+), 20 deletions(-) diff --git a/docker/vnf/Dockerfile b/docker/vnf/Dockerfile index e915120ed..f22784dca 100644 --- a/docker/vnf/Dockerfile +++ b/docker/vnf/Dockerfile @@ -4,9 +4,10 @@ ARG BRANCH=master ARG OPENSTACK_TAG=master ARG VIMS_TEST_TAG=release-130 ARG QUAFF_TAG=59213d6d8ee29433552bb75f505cdc96b0b18909 -ARG CLOUDIFY_VIMS_TAG=fraser +ARG CLOUDIFY_VIMS_TAG=gambia ARG HEAT_VIMS_TAG=release-130 ARG VROUTER_TAG=fraser +ARG VROUTER_BP_TAG=b16be2bfc4acabfec015300d294762b2da56c3a8 ARG JUJU_TAG=tags/juju-2.3.9 ARG JUJU_WAIT_TAG=2.6.4 ARG ABOT_CHARM=opnfv-fraser @@ -46,7 +47,7 @@ RUN apk --no-cache add --update \ git checkout FETCH_HEAD) && \ git init /src/opnfv-vnf-vyos-blueprint && \ (cd /src/opnfv-vnf-vyos-blueprint && \ - git fetch --tags https://github.com/oolorg/opnfv-vnf-vyos-blueprint.git $VROUTER_TAG && \ + git fetch --tags https://github.com/oolorg/opnfv-vnf-vyos-blueprint.git $VROUTER_BP_TAG && \ git checkout FETCH_HEAD) && \ mkdir -p /home/opnfv/functest/data/router && \ git init /home/opnfv/functest/data/router/opnfv-vnf-data && \ diff --git a/docker/vnf/testcases.yaml b/docker/vnf/testcases.yaml index 61bcd0748..9822a515a 100644 --- a/docker/vnf/testcases.yaml +++ b/docker/vnf/testcases.yaml @@ -20,7 +20,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 @@ -45,7 +44,6 @@ tiers: project_name: functest criteria: 100 blocking: false - enabled: false description: >- This test case is vRouter testing. run: 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 diff --git a/upper-constraints.txt b/upper-constraints.txt index 7683b04f4..493ceb744 100644 --- a/upper-constraints.txt +++ b/upper-constraints.txt @@ -10,7 +10,7 @@ git+https://gerrit.opnfv.org/gerrit/clover#egg=clover git+https://gerrit.opnfv.org/gerrit/parser#egg=nfv-heattranslator&subdirectory=tosca2heat/heat-translator git+https://gerrit.opnfv.org/gerrit/parser#egg=nfv-toscaparser&subdirectory=tosca2heat/tosca-parser -e git+https://gerrit.opnfv.org/gerrit/parser#egg=nfv-parser -cloudify-rest-client===4.3.2 +cloudify-rest-client===4.3.3 robotframework===3.0.2 robotframework-httplibrary===0.4.2 robotframework-requests===0.4.7 -- cgit 1.2.3-korg