Modify teardown script to make it safer
I made it so the teardown script would not destroy everything it possible could. A quiet teardown option was added and unused variable removed.
Change-Id: If4c3be7937441a58236b641ef7d171b52ba61c1d
Issue-ID: INT-610
Signed-off-by: eHanan <eoin.hanan@ericsson.com>
diff --git a/deployment/heat/onap-oom/scripts/deploy.sh b/deployment/heat/onap-oom/scripts/deploy.sh
index 8a41a78..11b2938 100755
--- a/deployment/heat/onap-oom/scripts/deploy.sh
+++ b/deployment/heat/onap-oom/scripts/deploy.sh
@@ -9,16 +9,61 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
+install_name="onap-oom"
+full_deletion=false
+
if [ -z "$WORKSPACE" ]; then
export WORKSPACE=`git rev-parse --show-toplevel`
fi
+usage() { echo "Usage: $0 [-n <number of VMs {2-15}>] [ -r ] <env-name>" 1>&2; exit 1; }
+
if [ "$#" -ne 1 ]; then
- echo "Usage: $0 <env-name>"
- exit 1
+ usage
fi
ENV_FILE=$1
+while getopts ":n:s:" o; do
+ case "${o}" in
+ n)
+ if [[ ${OPTARG} =~ ^[0-9]+$ ]];then
+ vm_num=${OPTARG}
+ if [ ${OPTARG} > 15 ] || [ ${OPTARG} < 2 ]; then
+ usage
+ fi
+ 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
+
+ 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
+ echo "Ending program"
+ exit 1
+ fi
+ else
+ echo "Ending program"
+ exit 1
+ fi
+ ;;
+ q)
+ full_deletion=true
+ ;;
+ *)
+ usage
+ ;;
+ esac
+done
+shift $((OPTIND-1))
+
SSH_KEY=~/.ssh/onap_key
source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh
@@ -27,20 +72,24 @@
export OS_PASSWORD_ENCRYPTED=$(echo -n "$OS_PASSWORD" | openssl aes-128-ecb -e -K "$SO_ENCRYPTION_KEY" -nosalt | xxd -c 256 -p)
for n in $(seq 1 5); do
- $WORKSPACE/test/ete/scripts/teardown-onap.sh
+ if [ $full_deletion = true ] ; then
+ $WORKSPACE/test/ete/scripts/teardown-onap.sh -n $install_name -q
+ else
+ $WORKSPACE/test/ete/scripts/teardown-onap.sh -n $install_name
+ fi
cd $WORKSPACE/deployment/heat/onap-oom
envsubst < $ENV_FILE > $ENV_FILE~
- if ! openstack stack create -t ./onap-oom.yaml -e $ENV_FILE~ onap-oom; then
+ if ! openstack stack create -t ./$install_name.yaml -e $ENV_FILE~ $install_name; then
break
fi
- while [ "CREATE_IN_PROGRESS" == "$(openstack stack show -c stack_status -f value onap-oom)" ]; do
+ while [ "CREATE_IN_PROGRESS" == "$(openstack stack show -c stack_status -f value $install_name)" ]; do
sleep 20
done
- STATUS=$(openstack stack show -c stack_status -f value onap-oom)
+ STATUS=$(openstack stack show -c stack_status -f value $install_name)
echo $STATUS
if [ "CREATE_COMPLETE" != "$STATUS" ]; then
break
@@ -48,8 +97,8 @@
for i in $(seq 1 30); do
sleep 30
- RANCHER_IP=$(openstack stack output show onap-oom rancher_vm_ip -c output_value -f value)
- K8S_IP=$(openstack stack output show onap-oom k8s_1_vm_ip -c output_value -f value)
+ 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)
timeout 1 ping -c 1 "$RANCHER_IP" && break
done
diff --git a/test/ete/scripts/teardown-onap.sh b/test/ete/scripts/teardown-onap.sh
index 9080e20..61e643b 100755
--- a/test/ete/scripts/teardown-onap.sh
+++ b/test/ete/scripts/teardown-onap.sh
@@ -1,49 +1,110 @@
#!/bin/bash -x
+full_deletion=false
+
+usage() { echo "Usage: $0 [-n <string>] [-r]" 1>&2; exit 1; }
+
+while getopts ":rqn:" o; do
+ case "${o}" in
+
+ 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
+
+ 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
+ echo "Ending program"
+ exit 1
+ fi
+ else
+ echo "Ending program"
+ exit 1
+ fi
+ ;;
+ q)
+ full_deletion=true
+ ;;
+ n)
+ install_name=${OPTARG}
+ ;;
+
+ *)
+ usage
+ ;;
+ esac
+done
+shift $((OPTIND-1))
+
if [ -z "$WORKSPACE" ]; then
export WORKSPACE=`git rev-parse --show-toplevel`
fi
source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh
-# delete all instances
-openstack server delete $(openstack server list -c ID -f value)
-sleep 1
+if [ "$full_deletion" = true ];then
+ echo "Commencing delete, press CRTL-C to stop"
+ sleep 10
-# miscellaneous cleanup
-openstack floating ip delete $(openstack floating ip list -c ID -f value)
-sleep 1
+ # delete all instances
+ openstack server delete $(openstack server list -c ID -f value)
+ sleep 1
-ROUTERS=$(openstack router list -c ID -f value)
-echo $ROUTERS
-for ROUTER in $ROUTERS; do
- echo $ROUTER;
- PORTS=$(openstack router show $ROUTER -c "interfaces_info" -f "value" | jq -r '.[].port_id')
- for PORT in $PORTS; do
- openstack router remove port $ROUTER $PORT
- done
- openstack router delete $ROUTER
-done
+ # miscellaneous cleanup
+ openstack floating ip delete $(openstack floating ip list -c ID -f value)
+ sleep 1
-openstack port delete $(openstack port list -f value -c ID)
-openstack volume delete $(openstack volume list -f value -c ID)
-
-# delete all except "default" security group
-SECURITY_GROUPS=$(openstack security group list -c ID -f value | grep -v default)
-openstack security group delete $SECURITY_GROUPS
-sleep 1
-
-
-# Delete all existing stacks
-STACKS=$(openstack stack list -c "Stack Name" -f value)
-
-if [ ! -z "${STACKS}" ]; then
- openstack stack delete -y $STACKS
- for STACK in ${STACKS}; do
- until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do
- sleep 2
+ ROUTERS=$(openstack router list -c ID -f value)
+ echo $ROUTERS
+ for ROUTER in $ROUTERS; do
+ echo $ROUTER;
+ PORTS=$(openstack router show $ROUTER -c "interfaces_info" -f "value" | jq -r '.[].port_id')
+ for PORT in $PORTS; do
+ openstack router remove port $ROUTER $PORT
done
+ openstack router delete $ROUTER
done
-else
- echo "No existing stacks to delete."
-fi
+
+ openstack port delete $(openstack port list -f value -c ID)
+ openstack volume delete $(openstack volume list -f value -c ID)
+
+ # delete all except "default" security group
+ SECURITY_GROUPS=$(openstack security group list -c ID -f value | grep -v default)
+ openstack security group delete $SECURITY_GROUPS
+ sleep 1
+
+
+ # Delete all existing stacks
+ STACKS=$(openstack stack list -c "Stack Name" -f value)
+
+ if [ ! -z "${STACKS}" ]; then
+ openstack stack delete -y $STACKS
+ for STACK in ${STACKS}; do
+ until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do
+ sleep 2
+ done
+ done
+ else
+ echo "No existing stacks to delete."
+ fi
+
+else
+ #Restrained teardown
+ echo "Restrained teardown"
+
+ STACK=$install_name
+
+ if [ ! -z "${STACK}" ]; 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