From c62cb17acd55b006bb5f8ab73787d08453856ee2 Mon Sep 17 00:00:00 2001 From: blsaws Date: Sat, 6 Aug 2016 16:24:42 -0700 Subject: Refactoring for cloudify-cli and cloudify-manager options JIRA: MODELS-23 Change-Id: I1260ab62926dc00d9bd9cbc13763fd718653fd79 Signed-off-by: blsaws --- tests/utils/cloudify-setup.sh | 28 ++++---- tests/vHello.sh | 154 +++++++++++++++++++++++++++--------------- 2 files changed, 114 insertions(+), 68 deletions(-) (limited to 'tests') diff --git a/tests/utils/cloudify-setup.sh b/tests/utils/cloudify-setup.sh index 876fe23..98945f0 100644 --- a/tests/utils/cloudify-setup.sh +++ b/tests/utils/cloudify-setup.sh @@ -19,8 +19,9 @@ # Status: this is a work in progress, under test. # # How to use: -# Save this file in /tmp/cloudify/cloudify-setup.sh -# $ bash /tmp/cloudify/cloudify-setup.sh [ 1 || 2 ] +# $ bash cloudify-setup.sh [cloudify-cli|cloudify-manager] [ 1 || 2 ] +# cloudify-cli: use Cloudify CLI +# cloudify-manager: use Cloudify Manager # 1: Initial setup of the docker container # 2: Setup of the Cloudify Manager in the docker container @@ -29,7 +30,7 @@ if [ "$dist" == "Ubuntu" ]; then echo "cloudify-setup.sh: Ubuntu-based install" echo "cloudify-setup.sh: Create the environment file" KEYSTONE_HOST=$(juju status --format=short | awk "/keystone\/0/ { print \$3 }") - cat </tmp/cloudify/admin-openrc + cat </tmp/cloudify/admin-openrc.sh export CONGRESS_HOST=$(juju status --format=short | awk "/openstack-dashboard/ { print \$3 }") export HORIZON_HOST=$(juju status --format=short | awk "/openstack-dashboard/ { print \$3 }") export KEYSTONE_HOST=$KEYSTONE_HOST @@ -52,7 +53,7 @@ else echo "cloudify-setup.sh: Get address of Controller node" export CONTROLLER_HOST1=$(openstack server list | awk "/overcloud-controller-0/ { print \$8 }" | sed 's/ctlplane=//g') echo "cloudify-setup.sh: Create the environment file" - cat </tmp/cloudify/admin-openrc + cat </tmp/cloudify/admin-openrc.sh export CONGRESS_HOST=$CONTROLLER_HOST1 export KEYSTONE_HOST=$CONTROLLER_HOST1 export CEILOMETER_HOST=$CONTROLLER_HOST1 @@ -61,15 +62,15 @@ export GLANCE_HOST=$CONTROLLER_HOST1 export NEUTRON_HOST=$CONTROLLER_HOST1 export NOVA_HOST=$CONTROLLER_HOST1 EOF - cat ~/overcloudrc >>/tmp/cloudify/admin-openrc + cat ~/overcloudrc >>/tmp/cloudify/admin-openrc.sh source ~/overcloudrc export OS_REGION_NAME=$(openstack endpoint list | awk "/ nova / { print \$4 }") # sed command below is a workaound for a bug - region shows up twice for some reason - cat <>/tmp/cloudify/admin-openrc + cat <>/tmp/cloudify/admin-openrc.sh export OS_REGION_NAME=$OS_REGION_NAME EOF fi -source /tmp/cloudify/admin-openrc +source /tmp/cloudify/admin-openrc.sh } function get_external_net () { @@ -89,19 +90,18 @@ function get_external_net () { dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` if [ "$1" == "1" ]; then echo "cloudify-setup.sh: Copy this script to /tmp/cloudify" - if [ -d "/tmp/cloudify" ]; then rm -rf /tmp/cloudify; fi - mkdir /tmp/cloudify cp $0 /tmp/cloudify/. + chmod 755 /tmp/cloudify/*.sh - echo "cloudify-setup.sh: Setup admin-openrc" + echo "cloudify-setup.sh: Setup admin-openrc.sh" setenv echo "cloudify-setup.sh: 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:/root/admin-openrc -v ~/cloudify/cloudify-setup.sh:/root/cloudify-setup.sh ubuntu:xenial /bin/bash - sudo docker run -it -d -v ~/tmp/cloudify/admin-openrc:/root/admin-openrc -v /tmp/cloudify/cloudify-setup.sh:/root/cloudify-setup.sh ubuntu:xenial /bin/bash +# 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 ubuntu:xenial /bin/bash exit 0 fi else @@ -161,8 +161,8 @@ mv 3.4.tar.gz cloudify-manager-blueprints.tar.gz tar -xzvf cloudify-manager-blueprints.tar.gz cd cloudify-manager-blueprints-3.4 -echo "cloudify-setup.sh: Setup admin-openrc" -source ~/admin-openrc +echo "cloudify-setup.sh: Setup admin-openrc.sh" +source /tmp/cloudify/admin-openrc.sh echo "cloudify-setup.sh: Setup keystone_username" sed -i -- "s/keystone_username: ''/keystone_username: '$OS_USERNAME'/g" openstack-manager-blueprint-inputs.yaml diff --git a/tests/vHello.sh b/tests/vHello.sh index 2a98ef5..6c294bc 100644 --- a/tests/vHello.sh +++ b/tests/vHello.sh @@ -18,9 +18,10 @@ # Status: this is a work in progress, under test. # # How to use: -# Save this file and cloudify-setup.sh in ~/tmp/cloudify/ -# $ bash /tmp/cloudify/vHello.sh [setup | start | clean] -# setup: setup Cloudify Manager +# $ bash vHello.sh [cloudify-cli|cloudify-manager] [setup|start|clean] +# cloudify-cli: use Cloudify CLI +# cloudify-manager: use Cloudify Manager +# setup: setup test environment # start: run test # clean: cleanup after test @@ -38,69 +39,114 @@ fail() { exit 1 } -if [[ "$1" == "setup" ]]; then - echo "vHello.sh: cloudify-setup part 1" - bash /tmp/cloudify/cloudify-setup.sh 1 +select_manager() { + echo "vHello.sh: select manager to use" + MANAGER_IP=$(openstack server list | awk "/ cloudify-manager-server / { print \$9 }") + cfy use -t $MANAGER_IP + if [ $? -eq 1 ]; then fail; fi +} - echo "vHello.sh: cloudify-setup part 2" - CONTAINER=$(sudo docker ps -l | awk "/ ubuntu:xenial / { print \$1 }") - if [[ $(sudo docker exec $CONTAINER /root/cloudify-setup.sh 2) ]]; then fail; fi - pass -fi +start() { + echo "vHello.sh: reset blueprints folder" + if [[ -d /tmp/cloudify/blueprints ]]; then rm -rf /tmp/cloudify/blueprints; fi + mkdir /tmp/cloudify/blueprints + cd /tmp/cloudify/blueprints -if [[ "$1" == "start" ]]; then - echo "vHello.sh: run vHello test in cloudify-setup container" - CONTAINER=$(sudo docker ps -l | awk "/ ubuntu:xenial / { print \$1 }") - if [[ $(sudo docker exec $CONTAINER /root/vHello.sh) ]]; then fail; fi - pass -fi + echo "vHello.sh: clone cloudify-hello-world-example" + git clone https://github.com/cloudify-cosmo/cloudify-hello-world-example.git + cd cloudify-hello-world-example + git checkout 3.4.1-build -echo "vHello.sh: select manager to use" -MANAGER_IP=$(openstack server list | awk "/ cloudify-manager-server / { print \$9 }") -cfy use -t $MANAGER_IP -if [ $? -eq 1 ]; then fail; fi + echo "vHello.sh: create blueprint inputs file" + # Set host image per Cloudify agent compatibility: http://docs.getcloudify.org/3.4.0/agents/overview/ + cat <vHello-inputs.yaml + image: CentOS-7-x86_64-GenericCloud-1607 + flavor: m1.small + agent_user: centos + webserver_port: 8080 +EOF -if [[ "$1" == "clean" ]]; then - echo "vHello.sh: uninstall vHello blueprint" - cfy executions start -w uninstall -d vHello + echo "vHello.sh: activate cloudify Virtualenv" + source ~/cloudify/venv/bin/activate - echo "vHello.sh: delete vHello blueprint" - cfy deployments delete -d vHello + echo "vHello.sh: setup OpenStack CLI environment" + source /tmp/cloudify/admin-openrc.sh + + echo "vHello.sh: initialize cloudify environment" + cd /tmp/cloudify/blueprints + cfy init -r + + if [[ "$1" == "cloudify-manager" ]]; then select_manager; fi + + echo "vHello.sh: upload blueprint to manager" + cfy blueprints delete -b cloudify-hello-world-example + cfy blueprints upload -p cloudify-hello-world-example/blueprint.yaml -b cloudify-hello-world-example if [ $? -eq 1 ]; then fail; fi + + echo "vHello.sh: create vHello deployment" + cd /tmp/cloudify/blueprints/cloudify-hello-world-example + cfy deployments create --debug -d vHello -i vHello-inputs.yaml -b cloudify-hello-world-example + if [ $? -eq 1 ]; then fail; fi + + echo "vHello.sh: execute 'install' workflow for vHello deployment" + cfy executions start -w install -d vHello --timeout 1800 + if [ $? -eq 1 ]; then fail; fi + + echo "vHello.sh: verify vHello server is running" + SERVER_IP=$(cfy deployments outputs -d vHello | awk "/ Value: / { print \$2 }") + apt-get install -y curl + if [[ $(curl $SERVER_IP | grep -c "Hello, World!") != 1 ]]; then fail; fi + pass -fi +} -echo "vHello.sh: reset blueprints folder" -cd ~ -rm -rf blueprints -mkdir blueprints +clean() { + echo "vHello.sh: activate cloudify Virtualenv" + source ~/cloudify/venv/bin/activate -echo "vHello.sh: clone cloudify-hello-world-example" -cd blueprints -git clone https://github.com/cloudify-cosmo/cloudify-hello-world-example.git -git checkout 3.4.1-build + echo "vHello.sh: setup OpenStack CLI environment" + source /tmp/cloudify/admin-openrc.sh -echo "vHello.sh: create blueprint inputs file" -# Set host image per Cloudify agent compatibility: http://docs.getcloudify.org/3.4.0/agents/overview/ -cat <vHello-inputs.yaml - image: CentOS-7-x86_64-GenericCloud-1607 - flavor: m1.small - agent_user: centos - webserver_port: 8080 -EOF + echo "vHello.sh: initialize cloudify environment" + cd /tmp/cloudify/blueprints + cfy init -r + + if [[ "$1" == "cloudify-manager" ]]; then select_manager; fi -echo "vHello.sh: create vHello deployment" -cfy deployments create --debug -d vHello -i vHello-inputs.yaml -b cloudify-hello-world-example -if [ $? -eq 1 ]; then fail; fi + echo "vHello.sh: uninstall vHello blueprint" + cfy executions start -w uninstall -d vHello -echo "vHello.sh: execute 'install' workflow for vHello deployment" -cfy executions start -w install -d vHello --timeout 1800 -if [ $? -eq 1 ]; then fail; fi + echo "vHello.sh: delete vHello blueprint" + cfy deployments delete -d vHello + if [ $? -eq 1 ]; then fail; fi + pass +} -echo "vHello.sh: verify vHello server is running" -SERVER_IP=$(cfy deployments outputs -d vHello | awk "/ Value: / { print \$2 }") -apt-get install -y curl -if [[ $(curl $SERVER_IP | grep -c "Hello, World!") != 1 ]]; then fail; fi +if [[ "$2" == "setup" ]]; then + echo "vHello.sh: Setup temp test folder /tmp/cloudify and copy this script there" + mkdir /tmp/cloudify + chmod 777 /tmp/cloudify/ + cp $0 /tmp/cloudify/. + chmod 755 /tmp/cloudify/*.sh -pass + echo "vHello.sh: cloudify-setup part 1" + bash utils/cloudify-setup.sh $1 1 + echo "vHello.sh: cloudify-setup part 2" + CONTAINER=$(sudo docker ps -l | awk "/ ubuntu:xenial / { print \$1 }") + sudo docker exec $CONTAINER /tmp/cloudify/cloudify-setup.sh $1 2 + if [ $? -eq 1 ]; then fail; fi + pass +else + if [[ $# -eq 3 ]]; then + # running inside the cloudify container, ready to go + if [[ "$3" == "start" ]]; then start $1; fi + if [[ "$3" == "clean" ]]; then clean $1; fi + else + echo "vHello.sh: pass $2 command to vHello.sh in cloudify container" + CONTAINER=$(sudo docker ps -l | awk "/ ubuntu:xenial / { print \$1 }") + sudo docker exec $CONTAINER /tmp/cloudify/vHello.sh $1 $2 $2 + if [ $? -eq 1 ]; then fail; fi + pass + fi +fi -- cgit