Modify teardown script to make it safer
[integration.git] / test / ete / scripts / teardown-onap.sh
1 #!/bin/bash -x
2
3 full_deletion=false
4
5 usage() { echo "Usage: $0 [-n <string>] [-r]" 1>&2; exit 1; }
6
7 while getopts ":rqn:" o; do
8     case "${o}" in
9
10         r)
11             echo "The following command will delete all information relating to onap within your enviroment"
12             read -p "Are you certain this is what you want? (type y to confirm):" answer
13
14             if [ $answer = "y" ] || [ $answer = "Y" ] || [ $answer = "yes" ] || [ $answer = "Yes"]; then
15                 echo "This may delete the work of other colleages within the same enviroment"
16                 read -p "Are you certain this is what you want? (type y to confirm):" answer2
17                 
18                 if [ $answer2 = "y" ] || [ $answer2 = "Y" ] || [ $answer2 = "yes" ] || [ $answer2 = "Yes"]; then
19                     full_deletion=true
20                 else 
21                     echo "Ending program"
22                     exit 1
23                 fi
24             else 
25                 echo "Ending program"
26                 exit 1
27             fi
28             ;;
29         q)
30             full_deletion=true
31             ;;
32         n)
33             install_name=${OPTARG}
34             ;;
35
36         *)
37             usage
38             ;;
39     esac
40 done
41 shift $((OPTIND-1))
42
43 if [ -z "$WORKSPACE" ]; then
44     export WORKSPACE=`git rev-parse --show-toplevel`
45 fi
46
47 source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh
48
49 if [ "$full_deletion" = true ];then 
50     echo "Commencing delete, press CRTL-C to stop"
51     sleep 10
52
53     # delete all instances
54     openstack server delete $(openstack server list -c ID -f value)
55     sleep 1
56
57     # miscellaneous cleanup
58     openstack floating ip delete $(openstack floating ip list -c ID -f value)
59     sleep 1
60
61     ROUTERS=$(openstack router list -c ID -f value)
62     echo $ROUTERS
63     for ROUTER in $ROUTERS; do
64         echo $ROUTER;
65         PORTS=$(openstack router show $ROUTER  -c "interfaces_info" -f "value" | jq -r '.[].port_id')
66         for PORT in $PORTS; do
67             openstack router remove port $ROUTER $PORT
68         done
69         openstack router delete $ROUTER
70     done
71
72     openstack port delete $(openstack port list -f value -c ID)
73     openstack volume delete $(openstack volume list -f value -c ID)
74
75     # delete all except "default" security group
76     SECURITY_GROUPS=$(openstack security group list -c ID -f value | grep -v default)
77     openstack security group delete $SECURITY_GROUPS
78     sleep 1
79
80
81     # Delete all existing stacks
82     STACKS=$(openstack stack list -c "Stack Name" -f value)
83
84     if [ ! -z "${STACKS}" ]; then
85         openstack stack delete -y $STACKS
86         for STACK in ${STACKS}; do
87             until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do
88                 sleep 2
89             done
90         done
91     else
92         echo "No existing stacks to delete."
93     fi
94
95 else 
96     #Restrained teardown 
97     echo "Restrained teardown"
98     
99     STACK=$install_name
100
101     if [ ! -z "${STACK}" ]; then
102         openstack stack delete $STACK
103         
104         until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do
105         sleep 2
106         done
107     else
108         echo "No existing stack with the name $install_name."
109     fi
110 fi