summaryrefslogtreecommitdiffstats
path: root/tests/utils
diff options
context:
space:
mode:
authorblsaws <bryan.sullivan@att.com>2016-09-14 11:11:52 -0700
committerblsaws <bryan.sullivan@att.com>2016-09-14 11:11:52 -0700
commit34080cb1c9c05aaeeb13d34bfbf9fd54bbaf25f9 (patch)
tree5ff13bd83c3908131dde33c99c635eed4d682b6f /tests/utils
parent2cd06c9bff01b6a9d8755132b8c7798ff1f72053 (diff)
Align design of Cloudify and Tacker test scripts
JIRA: MODELS-23 Change-Id: Iaa4efef6b5c993381ad6d7e5583859e860a52d0f Signed-off-by: blsaws <bryan.sullivan@att.com>
Diffstat (limited to 'tests/utils')
-rw-r--r--tests/utils/cloudify-setup.sh349
-rw-r--r--tests/utils/tacker-setup.sh156
2 files changed, 262 insertions, 243 deletions
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