Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 1 | #!/bin/bash -x |
| 2 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 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 |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 17 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 18 | if [ $answer2 = "y" ] || [ $answer2 = "Y" ] || [ $answer2 = "yes" ] || [ $answer2 = "Yes"]; then |
| 19 | full_deletion=true |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 20 | else |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 21 | echo "Ending program" |
| 22 | exit 1 |
| 23 | fi |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 24 | else |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 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 | |
Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 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 | |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 49 | if [ "$full_deletion" = true ];then |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 50 | echo "Commencing delete, press CRTL-C to stop" |
| 51 | sleep 10 |
Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 52 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 53 | # delete all instances |
Gary Wu | 133c664 | 2018-10-02 10:51:09 -0700 | [diff] [blame] | 54 | SERVERS=$(openstack server list -c ID -f value --project $OS_PROJECT_ID) |
| 55 | if [ $? -ne 0 ]; then |
| 56 | # only admin roles support --project parameter, so retry without it if the above returns an error |
| 57 | SERVERS=$(openstack server list -c ID -f value) |
| 58 | fi |
| 59 | if [ ! -z "$SERVERS" ]; then |
| 60 | openstack server delete $SERVERS |
| 61 | sleep 1 |
| 62 | fi |
Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 63 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 64 | # miscellaneous cleanup |
Gary Wu | 133c664 | 2018-10-02 10:51:09 -0700 | [diff] [blame] | 65 | FLOATING_IPS=$(openstack floating ip list -c ID -f value --project $OS_PROJECT_ID) |
| 66 | if [ ! -z "$FLOATING_IPS" ]; then |
| 67 | openstack floating ip delete $FLOATING_IPS |
| 68 | sleep 1 |
| 69 | fi |
Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 70 | |
Gary Wu | 17cd906 | 2018-09-13 13:02:07 -0700 | [diff] [blame] | 71 | ROUTERS=$(openstack router list -c ID -f value --project $OS_PROJECT_ID) |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 72 | echo $ROUTERS |
| 73 | for ROUTER in $ROUTERS; do |
| 74 | echo $ROUTER; |
| 75 | PORTS=$(openstack router show $ROUTER -c "interfaces_info" -f "value" | jq -r '.[].port_id') |
| 76 | for PORT in $PORTS; do |
| 77 | openstack router remove port $ROUTER $PORT |
Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 78 | done |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 79 | openstack router delete $ROUTER |
Gary Wu | cc10f1c | 2018-01-03 11:19:28 -0800 | [diff] [blame] | 80 | done |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 81 | sleep 1 |
| 82 | |
Gary Wu | 133c664 | 2018-10-02 10:51:09 -0700 | [diff] [blame] | 83 | PORTS=$(openstack port list -f value -c ID --project $OS_PROJECT_ID) |
| 84 | if [ ! -z "$PORTS" ]; then |
| 85 | openstack port delete $PORTS |
| 86 | sleep 1 |
| 87 | fi |
| 88 | VOLUMES=$(openstack volume list -f value -c ID --project $OS_PROJECT_ID) |
| 89 | if [ ! -z "$VOLUMES" ]; then |
| 90 | openstack volume delete $VOLUMES |
| 91 | sleep 1 |
| 92 | fi |
| 93 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 94 | |
| 95 | # Delete all existing stacks |
| 96 | STACKS=$(openstack stack list -c "Stack Name" -f value) |
| 97 | |
| 98 | if [ ! -z "${STACKS}" ]; then |
| 99 | openstack stack delete -y $STACKS |
| 100 | for STACK in ${STACKS}; do |
| 101 | until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do |
| 102 | sleep 2 |
| 103 | done |
| 104 | done |
| 105 | else |
| 106 | echo "No existing stacks to delete." |
| 107 | fi |
| 108 | |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 109 | else |
| 110 | #Restrained teardown |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 111 | echo "Restrained teardown" |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 112 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 113 | STACK=$install_name |
| 114 | |
Konrad Bańka | a3990d0 | 2019-07-30 09:02:42 +0200 | [diff] [blame] | 115 | STATUS=$(openstack stack check $STACK 2>&1) |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 116 | |
| 117 | if [ "Stack not found: $install_name" != "$STATUS" ]; then |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 118 | openstack stack delete $STACK |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 119 | |
eHanan | 58ccb9d | 2018-08-07 14:09:26 +0100 | [diff] [blame] | 120 | until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do |
| 121 | sleep 2 |
| 122 | done |
| 123 | else |
| 124 | echo "No existing stack with the name $install_name." |
| 125 | fi |
eHanan | 97b7a9c | 2018-09-05 14:09:19 +0100 | [diff] [blame] | 126 | fi |