From 34080cb1c9c05aaeeb13d34bfbf9fd54bbaf25f9 Mon Sep 17 00:00:00 2001 From: blsaws Date: Wed, 14 Sep 2016 11:11:52 -0700 Subject: Align design of Cloudify and Tacker test scripts JIRA: MODELS-23 Change-Id: Iaa4efef6b5c993381ad6d7e5583859e860a52d0f Signed-off-by: blsaws --- tests/utils/cloudify-setup.sh | 349 ++++++++++++++++++++++-------------------- tests/utils/tacker-setup.sh | 156 +++++++++---------- 2 files changed, 262 insertions(+), 243 deletions(-) (limited to 'tests/utils') diff --git a/tests/utils/cloudify-setup.sh b/tests/utils/cloudify-setup.sh index baf41fa..c011181 100644 --- a/tests/utils/cloudify-setup.sh +++ b/tests/utils/cloudify-setup.sh @@ -26,6 +26,18 @@ # setup: Setup of Cloudify in the docker container # clean: Clean +pass() { + echo "$0: Hooray!" + set +x #echo off + exit 0 +} + +fail() { + echo "$0: Failed!" + set +x + exit 1 +} + function setenv () { if [ "$dist" == "Ubuntu" ]; then echo "$0: Ubuntu-based install" @@ -88,29 +100,27 @@ function get_external_net () { fi } -dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` -case "$2" in - "init") - # STEP 1: Create the container and launch it - echo "$0: Copy this script to /tmp/cloudify" - mkdir /tmp/cloudify - cp $0 /tmp/cloudify/. - chmod 755 /tmp/cloudify/*.sh - - echo "$0: Setup admin-openrc.sh" - setenv - echo "$0: Setup container" - if [ "$dist" == "Ubuntu" ]; then - # xenial is needed for python 3.5 - sudo docker pull ubuntu:xenial - sudo service docker start -# sudo docker run -it -v ~/git/joid/ci/cloud/admin-openrc.sh:/root/admin-openrc.sh -v ~/cloudify/cloudify-setup.sh:/root/cloudify-setup.sh ubuntu:xenial /bin/bash - sudo docker run -it -d -v /tmp/cloudify/:/tmp/cloudify --name cloudify ubuntu:xenial /bin/bash - exit 0 - else - # Centos - echo "Centos-based install" - sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' +function create_container () { + # STEP 1: Create the container and launch it + echo "$0: Copy this script to /tmp/cloudify" + mkdir /tmp/cloudify + cp $0 /tmp/cloudify/. + chmod 755 /tmp/cloudify/*.sh + + echo "$0: Setup admin-openrc.sh" + setenv + echo "$0: Setup container" + if [ "$dist" == "Ubuntu" ]; then + # xenial is needed for python 3.5 + sudo docker pull ubuntu:xenial + sudo service docker start +# sudo docker run -it -v ~/git/joid/ci/cloud/admin-openrc.sh:/root/admin-openrc.sh -v ~/cloudify/cloudify-setup.sh:/root/cloudify-setup.sh ubuntu:xenial /bin/bash + sudo docker run -it -d -v /tmp/cloudify/:/tmp/cloudify --name cloudify ubuntu:xenial /bin/bash + exit 0 + else + # Centos + echo "Centos-based install" + sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ @@ -118,174 +128,181 @@ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF - sudo yum install -y docker-engine - # xenial is needed for python 3.5 - sudo docker pull ubuntu:xenial - sudo service docker start -# sudo docker run -it -v ~/git/joid/ci/cloud/admin-openrc.sh:/root/admin-openrc.sh -v ~/cloudify/cloudify-setup.sh:/root/cloudify-setup.sh ubuntu:xenial /bin/bash - sudo docker run -i -t -d -v /tmp/cloudify/:/tmp/cloudify ubuntu:xenial /bin/bash - fi - exit 0 - ;; - "setup") - ;; - "clean") - source /tmp/cloudify/admin-openrc.sh - openstack router show vnf_mgmt_router - neutron router-gateway-clear vnf_mgmt_router - pid=($(neutron router-port-list vnf_mgmt_router|grep -v name|awk '{print $2}')); for id in ${pid[@]}; do neutron router-interface-delete vnf_mgmt_router vnf_mgmt; done - neutron router-delete vnf_mgmt_router - neutron net-delete vnf_mgmt - sudo docker stop $(sudo docker ps -a | awk "/cloudify/ { print \$1 }") - sudo docker rm -v $(sudo docker ps -a | awk "/cloudify/ { print \$1 }") - exit 0 - ;; - *) - echo "usage: $ bash cloudify-setup.sh [cloudify-cli|cloudify-manager] [init|setup|clean]" - echo "cloudify-cli: use Cloudify CLI" - echo "cloudify-manager: use Cloudify Manager" - echo "init: Initialize docker container" - echo "setup: Setup of Cloudify in the docker container" - echo "clean: Clean" - exit 1 -esac + sudo yum install -y docker-engine + # xenial is needed for python 3.5 + sudo docker pull ubuntu:xenial + sudo service docker start + # sudo docker run -it -v ~/git/joid/ci/cloud/admin-openrc.sh:/root/admin-openrc.sh -v ~/cloudify/cloudify-setup.sh:/root/cloudify-setup.sh ubuntu:xenial /bin/bash + sudo docker run -i -t -d -v /tmp/cloudify/:/tmp/cloudify ubuntu:xenial /bin/bash + fi +} -echo "$0: Install dependencies - OS specific" -if [ "$dist" == "Ubuntu" ]; then - apt-get update - apt-get install -y python - apt-get install -y python-dev - apt-get install -y python-pip - apt-get install -y wget - apt-get install -y openssh-server - apt-get install -y git -# apt-get install -y apg git gcc python-dev libxml2 libxslt1-dev libzip-dev -# pip install --upgrade pip virtualenv setuptools pbr tox -fi +function setup () { + echo "$0: Install dependencies - OS specific" + if [ "$dist" == "Ubuntu" ]; then + apt-get update + apt-get install -y python + apt-get install -y python-dev + apt-get install -y python-pip + apt-get install -y wget + apt-get install -y openssh-server + apt-get install -y git + # apt-get install -y apg git gcc python-dev libxml2 libxslt1-dev libzip-dev + # pip install --upgrade pip virtualenv setuptools pbr tox + fi -cd ~ + cd ~ -echo "$0: Install dependencies - generic" -pip install --upgrade pip setuptools + echo "$0: Install dependencies - generic" + pip install --upgrade pip setuptools -echo "$0: install python-openstackclient python-glanceclient" -pip install --upgrade python-openstackclient python-glanceclient python-neutronclient -pip install --upgrade python-neutronclient + echo "$0: install python-openstackclient python-glanceclient" + pip install --upgrade python-openstackclient python-glanceclient python-neutronclient + pip install --upgrade python-neutronclient -echo "$0: cleanup any previous install attempt" -if [ -d "~/cloudify" ]; then rm -rf ~/cloudify; fi -if [ -d "~/cloudify-manager" ]; then rm -rf ~/cloudify-manager; fi -rm ~/get-cloudify.py + echo "$0: cleanup any previous install attempt" + if [ -d "~/cloudify" ]; then rm -rf ~/cloudify; fi + if [ -d "~/cloudify-manager" ]; then rm -rf ~/cloudify-manager; fi + rm ~/get-cloudify.py -echo "$0: Get Cloudify" -wget http://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/get-cloudify.py -python get-cloudify.py --upgrade + echo "$0: Get Cloudify" + wget http://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/get-cloudify.py + python get-cloudify.py --upgrade -echo "$0: Initialize Cloudify" -cfy init + echo "$0: Initialize Cloudify" + cfy init -echo "$0: Setup admin-openrc.sh" -source /tmp/cloudify/admin-openrc.sh + echo "$0: Setup admin-openrc.sh" + source /tmp/cloudify/admin-openrc.sh -get_external_net + get_external_net -if [ "$1" == "cloudify-manager" ]; then - echo "$0: Prepare the Cloudify Manager prerequisites and data" - mkdir -p ~/cloudify-manager - cd ~/cloudify-manager - wget https://github.com/cloudify-cosmo/cloudify-manager-blueprints/archive/3.4.tar.gz - mv 3.4.tar.gz cloudify-manager-blueprints.tar.gz - tar -xzvf cloudify-manager-blueprints.tar.gz - cd cloudify-manager-blueprints-3.4 + if [ "$1" == "cloudify-manager" ]; then + echo "$0: Prepare the Cloudify Manager prerequisites and data" + mkdir -p ~/cloudify-manager + cd ~/cloudify-manager + wget https://github.com/cloudify-cosmo/cloudify-manager-blueprints/archive/3.4.tar.gz + mv 3.4.tar.gz cloudify-manager-blueprints.tar.gz + tar -xzvf cloudify-manager-blueprints.tar.gz + cd cloudify-manager-blueprints-3.4 - echo "$0: Setup keystone_username" - sed -i -- "s/keystone_username: ''/keystone_username: '$OS_USERNAME'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup keystone_username" + sed -i -- "s/keystone_username: ''/keystone_username: '$OS_USERNAME'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup keystone_password" - sed -i -- "s/keystone_password: ''/keystone_password: '$OS_PASSWORD'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup keystone_password" + sed -i -- "s/keystone_password: ''/keystone_password: '$OS_PASSWORD'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup keystone_tenant_name" - sed -i -- "s/keystone_tenant_name: ''/keystone_tenant_name: '$OS_TENANT_NAME'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup keystone_tenant_name" + sed -i -- "s/keystone_tenant_name: ''/keystone_tenant_name: '$OS_TENANT_NAME'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup keystone_url" - # Use ~ instead of / as regex delimeter, since this variable contains slashes - sed -i -- "s~keystone_url: ''~keystone_url: '$OS_AUTH_URL'~g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup keystone_url" + # Use ~ instead of / as regex delimeter, since this variable contains slashes + sed -i -- "s~keystone_url: ''~keystone_url: '$OS_AUTH_URL'~g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup region" - sed -i -- "s/region: ''/region: '$OS_REGION_NAME'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup region" + sed -i -- "s/region: ''/region: '$OS_REGION_NAME'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup manager_public_key_name" - sed -i -- "s/#manager_public_key_name: ''/manager_public_key_name: 'cloudify-manager'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup manager_public_key_name" + sed -i -- "s/#manager_public_key_name: ''/manager_public_key_name: 'cloudify-manager'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup agent_public_key_name" - sed -i -- "s/#agent_public_key_name: ''/agent_public_key_name: 'cloudify-agent'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup agent_public_key_name" + sed -i -- "s/#agent_public_key_name: ''/agent_public_key_name: 'cloudify-agent'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup image_id" - # CentOS-7-x86_64-GenericCloud.qcow2 failed to be routable (?), so changed to 1607 version - image=$(openstack image list | awk "/ CentOS-7-x86_64-GenericCloud-1607 / { print \$2 }") - if [ -z $image ]; then - glance --os-image-api-version 1 image-create --name CentOS-7-x86_64-GenericCloud-1607 --disk-format qcow2 --location http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1607.qcow2 --container-format bare - fi - image=$(openstack image list | awk "/ CentOS-7-x86_64-GenericCloud-1607 / { print \$2 }") - sed -i -- "s/image_id: ''/image_id: '$image'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup image_id" + # CentOS-7-x86_64-GenericCloud.qcow2 failed to be routable (?), so changed to 1607 version + image=$(openstack image list | awk "/ CentOS-7-x86_64-GenericCloud-1607 / { print \$2 }") + if [ -z $image ]; then + glance --os-image-api-version 1 image-create --name CentOS-7-x86_64-GenericCloud-1607 --disk-format qcow2 --location http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1607.qcow2 --container-format bare + fi + image=$(openstack image list | awk "/ CentOS-7-x86_64-GenericCloud-1607 / { print \$2 }") + sed -i -- "s/image_id: ''/image_id: '$image'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup flavor_id" - flavor=$(nova flavor-show m1.large | awk "/ id / { print \$4 }") - sed -i -- "s/flavor_id: ''/flavor_id: '$flavor'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup flavor_id" + flavor=$(nova flavor-show m1.large | awk "/ id / { print \$4 }") + sed -i -- "s/flavor_id: ''/flavor_id: '$flavor'/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Setup external_network_name" - sed -i -- "s/external_network_name: ''/external_network_name: '$EXTERNAL_NETWORK_NAME'/g" openstack-manager-blueprint-inputs.yaml + echo "$0: Setup external_network_name" + sed -i -- "s/external_network_name: ''/external_network_name: '$EXTERNAL_NETWORK_NAME'/g" openstack-manager-blueprint-inputs.yaml - # By default, only the cloudify-management-router is setup as DNS server, and it was failing to resolve internet domain names, which was blocking download of needed resources - echo "$0: Add nameservers" - sed -i -- "s/#management_subnet_dns_nameservers: \[\]/management_subnet_dns_nameservers: \[8.8.8.8\]/g" openstack-manager-blueprint-inputs.yaml + # By default, only the cloudify-management-router is setup as DNS server, and it was failing to resolve internet domain names, which was blocking download of needed resources + echo "$0: Add nameservers" + sed -i -- "s/#management_subnet_dns_nameservers: \[\]/management_subnet_dns_nameservers: \[8.8.8.8\]/g" openstack-manager-blueprint-inputs.yaml - echo "$0: Bootstrap the manager" - cfy bootstrap --install-plugins --keep-up-on-failure --task-retries=10 -p openstack-manager-blueprint.yaml -i openstack-manager-blueprint-inputs.yaml + echo "$0: Bootstrap the manager" + cfy bootstrap --install-plugins --keep-up-on-failure --task-retries=10 -p openstack-manager-blueprint.yaml -i openstack-manager-blueprint-inputs.yaml - echo "$0: install needed packages to support blueprints 'not using managed plugins'" - # See https://cloudifysource.atlassian.net/browse/CFY-5050 - cfy ssh -c "sudo yum install -y gcc gcc-c++ python-devel" -else - echo "$0: Prepare the Cloudify CLI prerequisites and data" + echo "$0: install needed packages to support blueprints 'not using managed plugins'" + # See https://cloudifysource.atlassian.net/browse/CFY-5050 + cfy ssh -c "sudo yum install -y gcc gcc-c++ python-devel" - echo "Create management network" - if [ $(neutron net-list | awk "/ vnf_mgmt / { print \$2 }") ]; then - echo "$0: vnf_mgmt network exists" + # Note setup_test_environment is not needed since the Manager sets up the + # needed networks etc else - neutron net-create vnf_mgmt - echo "$0: Create management subnet" - neutron subnet-create vnf_mgmt 10.0.0.0/24 --name vnf_mgmt --gateway 10.0.0.1 --enable-dhcp --allocation-pool start=10.0.0.2,end=10.0.0.254 --dns-nameserver 8.8.8.8 - fi + echo "$0: Prepare the Cloudify CLI prerequisites and data" + + echo "Create management network" + if [ $(neutron net-list | awk "/ vnf_mgmt / { print \$2 }") ]; then + echo "$0: vnf_mgmt network exists" + else + neutron net-create vnf_mgmt + echo "$0: Create management subnet" + neutron subnet-create vnf_mgmt 10.0.0.0/24 --name vnf_mgmt --gateway 10.0.0.1 --enable-dhcp --allocation-pool start=10.0.0.2,end=10.0.0.254 --dns-nameserver 8.8.8.8 + fi - echo "$0: Create router for vnf_mgmt network" - neutron router-create vnf_mgmt_router + setup_test_environment + + echo "$0: Install Cloudify OpenStack Plugin" + # pip install https://github.com/cloudify-cosmo/cloudify-openstack-plugin/archive/1.4.zip + cd /tmp/cloudify + if [ -d "cloudify-openstack-plugin" ]; then rm -rf cloudify-openstack-plugin; fi + git clone https://github.com/cloudify-cosmo/cloudify-openstack-plugin.git + git checkout 1.4 + echo "$0: Patch plugin.yaml to reference management network" + sed -i -- ":a;N;\$!ba;s/management_network_name:\n default: ''/management_network_name:\n default: 'vnf_mgmt'/" /tmp/cloudify/cloudify-openstack-plugin/plugin.yaml + cd cloudify-openstack-plugin + python setup.py build + python setup.py install + + echo "$0: Install Cloudify Fabric (SSH) Plugin" + cd /tmp/cloudify + if [ -d "cloudify-fabric-plugin" ]; then rm -rf cloudify-fabric-plugin; fi + git clone https://github.com/cloudify-cosmo/cloudify-fabric-plugin.git + cd cloudify-fabric-plugin + git checkout 1.4 + python setup.py build + python setup.py install + cd .. + fi +} - echo "$0: Create router gateway for vnf_mgmt network" - neutron router-gateway-set vnf_mgmt_router $EXTERNAL_NETWORK_NAME +dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` +case "$2" in + "init") + create_container + pass + ;; + "setup") + setup + pass + ;; + "clean") + source /tmp/cloudify/admin-openrc.sh + openstack router show vnf_mgmt_router + neutron router-gateway-clear vnf_mgmt_router + pid=($(neutron router-port-list vnf_mgmt_router|grep -v name|awk '{print $2}')); for id in ${pid[@]}; do neutron router-interface-delete vnf_mgmt_router vnf_mgmt; done + neutron router-delete vnf_mgmt_router + neutron net-delete vnf_mgmt + sudo docker stop $(sudo docker ps -a | awk "/cloudify/ { print \$1 }") + sudo docker rm -v $(sudo docker ps -a | awk "/cloudify/ { print \$1 }") + pass + ;; + *) + echo "usage: $ bash cloudify-setup.sh [cloudify-cli|cloudify-manager] [init|setup|clean]" + echo "cloudify-cli: use Cloudify CLI" + echo "cloudify-manager: use Cloudify Manager" + echo "init: Initialize docker container" + echo "setup: Setup of Cloudify in the docker container" + echo "clean: Clean" + exit 1 +esac - echo "$0: Add router interface for vnf_mgmt network" - neutron router-interface-add vnf_mgmt_router subnet=vnf_mgmt - - echo "$0: Install Cloudify OpenStack Plugin" -# pip install https://github.com/cloudify-cosmo/cloudify-openstack-plugin/archive/1.4.zip - cd /tmp/cloudify - if [ -d "cloudify-openstack-plugin" ]; then rm -rf cloudify-openstack-plugin; fi - git clone https://github.com/cloudify-cosmo/cloudify-openstack-plugin.git - git checkout 1.4 - echo "$0: Patch plugin.yaml to reference management network" - sed -i -- ":a;N;\$!ba;s/management_network_name:\n default: ''/management_network_name:\n default: 'vnf_mgmt'/" /tmp/cloudify/cloudify-openstack-plugin/plugin.yaml - cd cloudify-openstack-plugin - python setup.py build - python setup.py install - - echo "$0: Install Cloudify Fabric (SSH) Plugin" - cd /tmp/cloudify - if [ -d "cloudify-fabric-plugin" ]; then rm -rf cloudify-fabric-plugin; fi - git clone https://github.com/cloudify-cosmo/cloudify-fabric-plugin.git - cd cloudify-fabric-plugin - git checkout 1.4 - python setup.py build - python setup.py install - cd .. -fi diff --git a/tests/utils/tacker-setup.sh b/tests/utils/tacker-setup.sh index c939419..aad1019 100644 --- a/tests/utils/tacker-setup.sh +++ b/tests/utils/tacker-setup.sh @@ -102,51 +102,7 @@ function get_external_net () { fi } -function setup_test_environment () { - echo "Create management network" - if [ $(neutron net-list | awk "/ vnf_mgmt / { print \$2 }") ]; then - echo "$0: vnf_mgmt network exists" - else - neutron net-create vnf_mgmt - echo "$0: Create management subnet" - neutron subnet-create vnf_mgmt 192.168.200.0/24 --name vnf_mgmt --gateway 192.168.200.1 --enable-dhcp --allocation-pool start=192.168.200.2,end=192.168.200.254 --dns-nameserver 8.8.8.8 - fi - - echo "$0: Create router for vnf_mgmt network" - if [ $(neutron router-list | awk "/ vnf_mgmt / { print \$2 }") ]; then - echo "$0: vnf_mgmt router exists" - else - neutron router-create vnf_mgmt_router - echo "$0: Create router gateway for vnf_mgmt network" - get_external_net - neutron router-gateway-set vnf_mgmt_router $EXTERNAL_NETWORK_NAME - echo "$0: Add router interface for vnf_mgmt network" - neutron router-interface-add vnf_mgmt_router subnet=vnf_mgmt - fi - - echo "Create private network" - if [ $(neutron net-list | awk "/ vnf_private / { print \$2 }") ]; then - echo "$0: vnf_private network exists" - else - neutron net-create vnf_private - echo "$0: Create private subnet" - neutron subnet-create vnf_private 192.168.201.0/24 --name vnf_private --gateway 192.168.201.1 --enable-dhcp --allocation-pool start=192.168.201.2,end=192.168.201.254 --dns-nameserver 8.8.8.8 - fi - - echo "$0: Create router for vnf_private network" - if [ $(neutron router-list | awk "/ vnf_private / { print \$2 }") ]; then - echo "$0: vnf_private router exists" - else - neutron router-create vnf_private_router - echo "$0: Create router gateway for vnf_private network" - get_external_net - neutron router-gateway-set vnf_private_router $EXTERNAL_NETWORK_NAME - echo "$0: Add router interface for vnf_private network" - neutron router-interface-add vnf_private_router subnet=vnf_private - fi -} - -function create_tacker_container () { +function create_container () { echo "$0: Creating docker container for Tacker installation" # STEP 1: Create the Tacker container and launch it echo "$0: Copy this script to /tmp/tacker" @@ -182,7 +138,7 @@ EOF fi } -function install_tacker () { +function setup () { echo "$0: Installing Tacker" # STEP 2: Install Tacker in the container # Per http://docs.openstack.org/developer/tacker/install/manual_installation.html @@ -314,39 +270,93 @@ project_name: admin EOF tacker vim-register --config-file vim-config.yaml --description OpenStack --name VIM0 + + setup_test_environment +} + +function setup_test_environment () { + echo "Create management network" + if [ $(neutron net-list | awk "/ vnf_mgmt / { print \$2 }") ]; then + echo "$0: vnf_mgmt network exists" + else + neutron net-create vnf_mgmt + echo "$0: Create management subnet" + neutron subnet-create vnf_mgmt 192.168.200.0/24 --name vnf_mgmt --gateway 192.168.200.1 --enable-dhcp --allocation-pool start=192.168.200.2,end=192.168.200.254 --dns-nameserver 8.8.8.8 + fi + + echo "$0: Create router for vnf_mgmt network" + if [ $(neutron router-list | awk "/ vnf_mgmt / { print \$2 }") ]; then + echo "$0: vnf_mgmt router exists" + else + neutron router-create vnf_mgmt_router + echo "$0: Create router gateway for vnf_mgmt network" + get_external_net + neutron router-gateway-set vnf_mgmt_router $EXTERNAL_NETWORK_NAME + echo "$0: Add router interface for vnf_mgmt network" + neutron router-interface-add vnf_mgmt_router subnet=vnf_mgmt + fi + + echo "Create private network" + if [ $(neutron net-list | awk "/ vnf_private / { print \$2 }") ]; then + echo "$0: vnf_private network exists" + else + neutron net-create vnf_private + echo "$0: Create private subnet" + neutron subnet-create vnf_private 192.168.201.0/24 --name vnf_private --gateway 192.168.201.1 --enable-dhcp --allocation-pool start=192.168.201.2,end=192.168.201.254 --dns-nameserver 8.8.8.8 + fi + + echo "$0: Create router for vnf_private network" + if [ $(neutron router-list | awk "/ vnf_private / { print \$2 }") ]; then + echo "$0: vnf_private router exists" + else + neutron router-create vnf_private_router + echo "$0: Create router gateway for vnf_private network" + get_external_net + neutron router-gateway-set vnf_private_router $EXTERNAL_NETWORK_NAME + echo "$0: Add router interface for vnf_private network" + neutron router-interface-add vnf_private_router subnet=vnf_private + fi +} + +function clean () { + source /tmp/tacker/admin-openrc.sh + openstack endpoint delete $(openstack endpoint list | awk "/tacker/ { print \$2 }") + openstack user delete $(openstack user list | awk "/tacker/ { print \$2 }") + openstack service delete $(openstack service list | awk "/tacker/ { print \$2 }") + pid=($(neutron port-list|grep -v "+"|grep -v id|awk '{print $2}')); for id in ${pid[@]}; do neutron port-delete ${id}; done + sid=($(openstack stack list|grep -v "+"|grep -v id|awk '{print $2}')); for id in ${sid[@]}; do openstack stack delete ${id}; done + sid=($(openstack security group list|grep security_group_local_security_group|awk '{print $2}')); for id in ${sid[@]}; do openstack security group delete ${id}; done + neutron router-gateway-clear vnf_mgmt_router + pid=($(neutron router-port-list vnf_mgmt_router|grep -v name|awk '{print $2}')); for id in ${pid[@]}; do neutron router-interface-delete vnf_mgmt_router vnf_mgmt; done + neutron router-delete vnf_mgmt_router + neutron net-delete vnf_mgmt + neutron router-gateway-clear vnf_private_router + pid=($(neutron router-port-list vnf_private_router|grep -v name|awk '{print $2}')); for id in ${pid[@]}; do neutron router-interface-delete vnf_private_router vnf_private; done + neutron router-delete vnf_private_router + neutron net-delete vnf_private + sudo docker stop $(sudo docker ps -a | awk "/tacker/ { print \$1 }") + sudo docker rm -v $(sudo docker ps -a | awk "/tacker/ { print \$1 }") } dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` case "$2" in "init") - uid=$(openstack user list | awk "/ tacker / { print \$2 }") - if [[ $uid ]]; then - echo "$0: Tacker user exists, assuming Tacker service is already installed" - else - create_tacker_container - fi + uid=$(openstack user list | awk "/ tacker / { print \$2 }") + if [[ $uid ]]; then + echo "$0: Remove prior Tacker user etc" + openstack user delete tacker + openstack service delete tacker + # Note: deleting the service deletes the endpoint + fi + create_container pass ;; "setup") + setup + pass ;; "clean") - source /tmp/tacker/admin-openrc.sh - openstack endpoint delete $(openstack endpoint list | awk "/tacker/ { print \$2 }") - openstack user delete $(openstack user list | awk "/tacker/ { print \$2 }") - openstack service delete $(openstack service list | awk "/tacker/ { print \$2 }") - pid=($(neutron port-list|grep -v "+"|grep -v id|awk '{print $2}')); for id in ${pid[@]}; do neutron port-delete ${id}; done - sid=($(openstack stack list|grep -v "+"|grep -v id|awk '{print $2}')); for id in ${sid[@]}; do openstack stack delete ${id}; done - sid=($(openstack security group list|grep security_group_local_security_group|awk '{print $2}')); for id in ${sid[@]}; do openstack security group delete ${id}; done - neutron router-gateway-clear vnf_mgmt_router - pid=($(neutron router-port-list vnf_mgmt_router|grep -v name|awk '{print $2}')); for id in ${pid[@]}; do neutron router-interface-delete vnf_mgmt_router vnf_mgmt; done - neutron router-delete vnf_mgmt_router - neutron net-delete vnf_mgmt - neutron router-gateway-clear vnf_private_router - pid=($(neutron router-port-list vnf_private_router|grep -v name|awk '{print $2}')); for id in ${pid[@]}; do neutron router-interface-delete vnf_private_router vnf_private; done - neutron router-delete vnf_private_router - neutron net-delete vnf_private - sudo docker stop $(sudo docker ps -a | awk "/tacker/ { print \$1 }") - sudo docker rm -v $(sudo docker ps -a | awk "/tacker/ { print \$1 }") + clean pass ;; *) @@ -356,11 +366,3 @@ case "$2" in echo "clean: remove Tacker service" fail esac - -echo "$0: Install Tacker and prerequisites" -install_tacker - -echo "$0: Prepare Tacker test network environment" -setup_test_environment -cd /tmp/tacker -pass -- cgit 1.2.3-korg