Last active
December 17, 2015 13:49
-
-
Save tamale/5620298 to your computer and use it in GitHub Desktop.
Safely remove all references to an instance from openstack nova database
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| DBHOST=node1 | |
| DBUSER=novauser | |
| DBPASS=novapass | |
| VMNAME=$1 | |
| if [ -z "$1" ]; then echo "VM Name not given"; exit 1; fi | |
| MYSQL_CMD="mysql -u${DBUSER} -p${DBPASS} -h${DBHOST} --batch --skip-column-names nova -e" | |
| ID=$(${MYSQL_CMD} "SELECT id FROM instances WHERE display_name = '$VMNAME' limit 1") | |
| UUID=$(${MYSQL_CMD} "SELECT uuid FROM instances WHERE display_name = '$VMNAME' limit 1"); | |
| if [ -z "$ID" ]; then echo "ID for $VNAME not found"; exit 1; fi | |
| if [ -z "$UUID" ]; then echo "UUID for $VNAME not found"; exit 1; fi | |
| echo "VMNAME: $VMNAME" | |
| echo "ID: $ID" | |
| echo "UUID: $UUID" | |
| echo "Delete $VMNAME? (y/n)" | |
| read -e YN | |
| if [ "$YN" != 'y' ]; then echo "Exiting...";exit 1;fi | |
| Q=`cat <<EOF | |
| DELETE FROM instance_faults WHERE instance_uuid = '$UUID'; | |
| DELETE FROM instance_id_mappings WHERE uuid = '$UUID'; | |
| DELETE FROM instance_info_caches WHERE instance_uuid = '$UUID'; | |
| DELETE FROM instance_system_metadata WHERE instance_uuid = '$UUID'; | |
| DELETE FROM security_group_instance_association WHERE instance_uuid = '$UUID'; | |
| DELETE FROM instances WHERE uuid = '$UUID'; | |
| EOF` | |
| RQ=$(mysql -u${DBUSER} -p${DBPASS} -h${DBHOST} --batch --skip-column-names nova -e "$Q") | |
| echo "Result was: $RQ" && echo "All done" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment