From 58ccb9d37df99e30ea6272b3789b13c814497a2e Mon Sep 17 00:00:00 2001 From: eHanan Date: Tue, 7 Aug 2018 14:09:26 +0100 Subject: 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 --- deployment/heat/onap-oom/scripts/deploy.sh | 65 +++++++++++++-- test/ete/scripts/teardown-onap.sh | 127 +++++++++++++++++++++-------- 2 files changed, 151 insertions(+), 41 deletions(-) diff --git a/deployment/heat/onap-oom/scripts/deploy.sh b/deployment/heat/onap-oom/scripts/deploy.sh index 8a41a78de..11b2938ee 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 ] [ -r ] " 1>&2; exit 1; } + if [ "$#" -ne 1 ]; then - echo "Usage: $0 " - 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 @@ SO_ENCRYPTION_KEY=aa3871669d893c7fb8abbcda31b88b4f 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 n in $(seq 1 5); do 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 9080e20ac..61e643b64 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 ] [-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 - -# miscellaneous cleanup -openstack floating ip delete $(openstack floating ip 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 +if [ "$full_deletion" = true ];then + echo "Commencing delete, press CRTL-C to stop" + sleep 10 + + # delete all instances + openstack server delete $(openstack server list -c ID -f value) + sleep 1 + + # miscellaneous cleanup + openstack floating ip delete $(openstack floating ip 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 - openstack router delete $ROUTER -done -openstack port delete $(openstack port list -f value -c ID) -openstack volume delete $(openstack volume list -f value -c ID) + 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 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) -# 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 "${STACKS}" ]; then - openstack stack delete -y $STACKS - for STACK in ${STACKS}; do + if [ ! -z "${STACK}" ]; then + openstack stack delete $STACK + until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do - sleep 2 + sleep 2 done - done -else - echo "No existing stacks to delete." -fi + else + echo "No existing stack with the name $install_name." + fi +fi \ No newline at end of file -- cgit 1.2.3-korg