summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblsaws <bryan.sullivan@att.com>2016-08-06 16:24:42 -0700
committerblsaws <bryan.sullivan@att.com>2016-08-06 16:24:42 -0700
commitc62cb17acd55b006bb5f8ab73787d08453856ee2 (patch)
tree262f8b302ad75896824f15fa24d1ae0c96b655eb
parent325197efd25da82d9016d74f279bb463aa2551c7 (diff)
Refactoring for cloudify-cli and cloudify-manager options
JIRA: MODELS-23 Change-Id: I1260ab62926dc00d9bd9cbc13763fd718653fd79 Signed-off-by: blsaws <bryan.sullivan@att.com>
-rw-r--r--tests/utils/cloudify-setup.sh28
-rw-r--r--tests/vHello.sh154
2 files changed, 114 insertions, 68 deletions
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 <<EOF >/tmp/cloudify/admin-openrc
+ cat <<EOF >/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 <<EOF >/tmp/cloudify/admin-openrc
+ cat <<EOF >/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 <<EOF | sed '$d' >>/tmp/cloudify/admin-openrc
+ cat <<EOF | sed '$d' >>/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 <<EOF >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 <<EOF >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