Refactoring for cloudify-cli and cloudify-manager options 15/18115/1
authorblsaws <bryan.sullivan@att.com>
Sat, 6 Aug 2016 23:24:42 +0000 (16:24 -0700)
committerblsaws <bryan.sullivan@att.com>
Sat, 6 Aug 2016 23:24:42 +0000 (16:24 -0700)
JIRA: MODELS-23

Change-Id: I1260ab62926dc00d9bd9cbc13763fd718653fd79
Signed-off-by: blsaws <bryan.sullivan@att.com>
tests/utils/cloudify-setup.sh
tests/vHello.sh

index 876fe23..98945f0 100644 (file)
@@ -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
index 2a98ef5..6c294bc 100644 (file)
 # 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