Skip to content

Instantly share code, notes, and snippets.

@tamale
Last active December 17, 2015 13:49
Show Gist options
  • Select an option

  • Save tamale/5620298 to your computer and use it in GitHub Desktop.

Select an option

Save tamale/5620298 to your computer and use it in GitHub Desktop.
Safely remove all references to an instance from openstack nova database
#!/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