Skip to content

Instantly share code, notes, and snippets.

@mcallaway
Created January 25, 2016 22:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mcallaway/e1e238c7c89217819d22 to your computer and use it in GitHub Desktop.
Save mcallaway/e1e238c7c89217819d22 to your computer and use it in GitHub Desktop.
Here's a script for removing nova instances from your DB.
#!/bin/bash
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# <http://www.gnu.org/licenses/>.
#
#VMNAME=$1
UUID=$1
if [ -z "$1" ]; then echo "VM ID not given"; exit 1; fi
Q=`cat <<EOF
SELECT id FROM nova.instances WHERE instances.uuid = '$UUID';
SELECT uuid FROM nova.instances WHERE instances.uuid = '$UUID';
SELECT display_name FROM nova.instances WHERE instances.uuid = '$UUID';
EOF`
RQ=`mysql --batch --skip-column-names -e "$Q"`
ID=`echo $RQ | cut -d' ' -f1`
UUID=`echo $RQ | cut -d' ' -f2`
VMNAME=`echo $RQ | cut -d' ' -f3`
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
for Q in \
"DELETE from nova.instance_actions_events where action_id in ( select id from nova.instance_actions where instance_uuid = '$UUID' );" \
"DELETE from nova.instance_actions where instance_uuid = '$UUID';" \
"DELETE FROM nova.instance_faults WHERE instance_faults.instance_uuid = '$UUID';" \
"DELETE FROM nova.instance_id_mappings WHERE instance_id_mappings.uuid = '$UUID';" \
"DELETE FROM nova.instance_info_caches WHERE instance_info_caches.instance_uuid = '$UUID';" \
"DELETE FROM nova.instance_system_metadata WHERE instance_system_metadata.instance_uuid = '$UUID';" \
"DELETE FROM nova.security_group_instance_association WHERE security_group_instance_association.instance_uuid = '$UUID';" \
"DELETE FROM nova.migrations where instance_uuid = '$UUID';" \
"DELETE FROM nova.instance_extra where instance_uuid = '$UUID';" \
"DELETE FROM nova.instances WHERE instances.uuid = '$UUID';"
do
echo $Q
RQ=`mysql --batch --skip-column-names -e "$Q"`
echo $RQ
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment