Deployment Script made more flexible 47/64747/4
authoreHanan <eoin.hanan@ericsson.com>
Wed, 5 Sep 2018 13:09:19 +0000 (14:09 +0100)
committerGary Wu <gary.i.wu@huawei.com>
Fri, 7 Sep 2018 18:02:55 +0000 (11:02 -0700)
Change-Id: I8322b85afdd5dfc1a88b7dbf369d3c19399b5b1e
Issue-ID: INT-611
Signed-off-by: eHanan <eoin.hanan@ericsson.com>
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
deployment/heat/onap-oom/onap-oom.yaml
deployment/heat/onap-oom/parts/onap-oom-1.yaml
deployment/heat/onap-oom/parts/onap-oom-2.yaml
deployment/heat/onap-oom/scripts/deploy.sh
deployment/heat/onap-oom/scripts/gen-onap-oom-yaml.sh
test/ete/scripts/teardown-onap.sh

index 5c99bdb..e8b0ffa 100644 (file)
@@ -138,6 +138,8 @@ resources:
   router:
     type: OS::Neutron::Router
     properties:
+      name:
+        list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
       external_gateway_info:
         network: { get_param: public_net_id }
 
@@ -164,7 +166,8 @@ resources:
   rancher_vm:
     type: OS::Nova::Server
     properties:
-      name: rancher
+      name:
+        list_join: ['-', [{ get_param: 'OS::stack_name' }, 'rancher']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: rancher_vm_flavor }
       key_name: { get_param: key_name }
@@ -227,7 +230,8 @@ resources:
   k8s_1_vm:
     type: OS::Nova::Server
     properties:
-      name: k8s_1
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_1']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
@@ -262,7 +266,8 @@ resources:
   k8s_2_vm:
     type: OS::Nova::Server
     properties:
-      name: k8s_2
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_2']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
@@ -297,7 +302,8 @@ resources:
   k8s_3_vm:
     type: OS::Nova::Server
     properties:
-      name: k8s_3
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_3']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
@@ -332,7 +338,8 @@ resources:
   k8s_4_vm:
     type: OS::Nova::Server
     properties:
-      name: k8s_4
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_4']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
@@ -367,7 +374,8 @@ resources:
   k8s_5_vm:
     type: OS::Nova::Server
     properties:
-      name: k8s_5
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_5']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
index 8031505..ab79b1e 100644 (file)
@@ -135,6 +135,8 @@ resources:
   router:
     type: OS::Neutron::Router
     properties:
+      name:
+        list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
       external_gateway_info:
         network: { get_param: public_net_id }
 
index 463635b..e01ba13 100644 (file)
@@ -15,7 +15,8 @@
   ${K8S_VM_NAME}_vm:
     type: OS::Nova::Server
     properties:
-      name: ${K8S_VM_NAME}
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, '${K8S_VM_NAME}']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
index c9cd005..c3418fa 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash
 #
 # Copyright 2018 Huawei Technologies Co., Ltd.
 #
@@ -9,18 +9,45 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 
-install_name="onap-oom"
+stack_name="oom"
 full_deletion=false
 
 if [ -z "$WORKSPACE" ]; then
     export WORKSPACE=`git rev-parse --show-toplevel`
 fi
 
-usage() { echo "Usage: $0 [ -r ] <env-name>" 1>&2; exit 1; }
+usage() {
+    echo "Usage: $0 [ -n <number of VMs {2-15}> ] [ -s <stack name> ][ -b <branch name> ][ -r ] <env>" 1>&2;
 
+    echo "n:    Set the number of VM's that will be installed. This number must be between 2 and 15" 1>&2;
+    echo "s:    Set the name to be used for stack. This name will be used for naming of resources" 1>&2;
+    echo "r:    Delete all resources relating to ONAP within enviroment." 1>&2;
+    echo "q:    Quiet Delete of all ONAP resources." 1>&2;
 
-while getopts ":rq" o; do
+    exit 1;
+}
+
+
+while getopts ":n:s:rq" o; do
     case "${o}" in
+        n)
+            if [[ ${OPTARG} =~ ^[0-9]+$ ]];then
+                if [ ${OPTARG} -ge 2 -a ${OPTARG} -le 15 ]; then
+                    vm_num=${OPTARG}
+                else
+                    usage
+                fi
+            else
+                usage
+            fi
+            ;;
+        s)
+            if [[ ! ${OPTARG} =~ ^[0-9]+$ ]];then
+                stack_name=${OPTARG}
+            else
+                usage
+            fi
+            ;;
         r)
             echo "The following command will delete all information relating to onap within your enviroment"
             read -p "Are you certain this is what you want? (type y to confirm):" answer
@@ -56,6 +83,13 @@ fi
 
 ENV_FILE=$1
 
+if [ ! -f $ENV_FILE ];then
+    echo ENV file does not exist or was not given
+    exit 1
+fi
+
+set -x
+
 SSH_KEY=~/.ssh/onap_key
 
 source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh
@@ -65,23 +99,28 @@ export OS_PASSWORD_ENCRYPTED=$(echo -n "$OS_PASSWORD" | openssl aes-128-ecb -e -
 
 for n in $(seq 1 5); do
     if [ $full_deletion = true ] ; then
-        $WORKSPACE/test/ete/scripts/teardown-onap.sh -n $install_name -q
+        $WORKSPACE/test/ete/scripts/teardown-onap.sh -n $stack_name -q
     else
-        $WORKSPACE/test/ete/scripts/teardown-onap.sh -n $install_name
+        $WORKSPACE/test/ete/scripts/teardown-onap.sh -n $stack_name
     fi
 
     cd $WORKSPACE/deployment/heat/onap-oom
     envsubst < $ENV_FILE > $ENV_FILE~
+    if [ -z "$vm_num" ]; then
+        cp onap-oom.yaml onap-oom.yaml~
+    else
+        ./scripts/gen-onap-oom-yaml.sh $vm_num > onap-oom.yaml~
+    fi
 
-    if ! openstack stack create -t ./$install_name.yaml -e $ENV_FILE~ $install_name; then
+    if ! openstack stack create -t ./onap-oom.yaml~ -e $ENV_FILE~ $stack_name; then
         break
     fi
 
-    while [ "CREATE_IN_PROGRESS" == "$(openstack stack show -c stack_status -f value $install_name)" ]; do
+    while [ "CREATE_IN_PROGRESS" == "$(openstack stack show -c stack_status -f value $stack_name)" ]; do
         sleep 20
     done
 
-    STATUS=$(openstack stack show -c stack_status -f value $install_name)
+    STATUS=$(openstack stack show -c stack_status -f value $stack_name)
     echo $STATUS
     if [ "CREATE_COMPLETE" != "$STATUS" ]; then
         break
@@ -89,8 +128,8 @@ for n in $(seq 1 5); do
 
     for i in $(seq 1 30); do
        sleep 30
-       RANCHER_IP=$(openstack stack output show $install_name rancher_vm_ip -c output_value -f value)
-        K8S_IP=$(openstack stack output show $install_name k8s_1_vm_ip -c output_value -f value)
+       RANCHER_IP=$(openstack stack output show $stack_name rancher_vm_ip -c output_value -f value)
+        K8S_IP=$(openstack stack output show $stack_name k8s_1_vm_ip -c output_value -f value)
        timeout 1 ping -c 1 "$RANCHER_IP" && break
     done
 
index 092b2a1..41c5de1 100755 (executable)
@@ -16,7 +16,6 @@ if [ "$#" -ne 1 ]; then
 fi
 NUM_K8S_VMS=$1
 
-
 if [ -z "$WORKSPACE" ]; then
     export WORKSPACE=`git rev-parse --show-toplevel`
 fi
@@ -34,7 +33,8 @@ cat <<EOF
   rancher_vm:
     type: OS::Nova::Server
     properties:
-      name: rancher
+      name:
+        list_join: ['-', [{ get_param: 'OS::stack_name' }, 'rancher']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: rancher_vm_flavor }
       key_name: { get_param: key_name }
index 61e643b..77b8233 100755 (executable)
@@ -14,14 +14,14 @@ while getopts ":rqn:" o; do
             if [ $answer = "y" ] || [ $answer = "Y" ] || [ $answer = "yes" ] || [ $answer = "Yes"]; then
                 echo "This may delete the work of other colleages within the same enviroment"
                 read -p "Are you certain this is what you want? (type y to confirm):" answer2
-                
+
                 if [ $answer2 = "y" ] || [ $answer2 = "Y" ] || [ $answer2 = "yes" ] || [ $answer2 = "Yes"]; then
                     full_deletion=true
-                else 
+                else
                     echo "Ending program"
                     exit 1
                 fi
-            else 
+            else
                 echo "Ending program"
                 exit 1
             fi
@@ -46,7 +46,7 @@ fi
 
 source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh
 
-if [ "$full_deletion" = true ];then 
+if [ "$full_deletion" = true ];then
     echo "Commencing delete, press CRTL-C to stop"
     sleep 10
 
@@ -92,19 +92,21 @@ if [ "$full_deletion" = true ];then
         echo "No existing stacks to delete."
     fi
 
-else 
-    #Restrained teardown 
+else
+    #Restrained teardown
     echo "Restrained teardown"
-    
+
     STACK=$install_name
 
-    if [ ! -z "${STACK}" ]; then
+    STATUS=$(openstack stack check $STACK)
+
+    if [ "Stack not found: $install_name" != "$STATUS" ]; then
         openstack stack delete $STACK
-        
+
         until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do
         sleep 2
         done
     else
         echo "No existing stack with the name $install_name."
     fi
-fi
\ No newline at end of file
+fi