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/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