heat/tools/uninstall-heat
Zane Bitter 45702a0d26 Improvements to uninstall script
- Kill only the specific heat processes we want (heat-api and heat-engine).
- Remove installations wherever they may be located.
- More robust handling of input.

Signed-off-by: Zane Bitter <zbitter@redhat.com>
2012-05-21 14:53:03 +02:00

79 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
TOOLS_DIR=`dirname $0`
if [ "$1" = "-y" ] || [ "$1" = "--yes" ]; then
SKIP_ASK=y
shift
fi
user_wants() {
if [ "$SKIP_ASK" = "y" ]; then return 0; fi
while true; do
read -n 1 -p "$1 " cont
echo 1>&2
case $cont in
y|Y)
return 0
;;
n|N)
return 1
;;
*)
;;
esac
done
}
HEAT_PIDS=`pgrep '^heat-(api|engine)$'`
if [ -n "$HEAT_PIDS" ]; then
echo 'The following Heat processes are running:' 1>&2
ps $HEAT_PIDS 1>&2
if user_wants 'Kill them?'; then
sudo kill $HEAT_PIDS
fi
echo 1>&2
fi
if user_wants 'Drop Heat database tables?'; then
$TOOLS_DIR/heat-db-drop $*
echo 1>&2
fi
if user_wants 'Erase OpenStack installation?'; then
$TOOLS_DIR/openstack erase $*
echo 1>&2
fi
HEAT_EGGS=`python -c 'import sys; print "\n".join(sys.path)' | grep '/heat-[^/]*\.egg$'`
if [ -n "$HEAT_EGGS" ]; then
echo 'The following Heat installations were found:' 1>&2
echo "$HEAT_EGGS" 1>&2
if user_wants 'Delete them?'; then
sudo rm -rf $HEAT_EGGS
fi
echo 1>&2
fi
if user_wants 'Delete Heat binaries?'; then
BIN_PATH=/usr/bin
sudo rm -f $BIN_PATH/heat-db-setup
sudo rm -f $BIN_PATH/heat-metadata
sudo rm -f $BIN_PATH/heat-api
sudo rm -f $BIN_PATH/heat-engine
sudo rm -f $BIN_PATH/heat
echo 1>&2
fi
if user_wants 'Delete Heat configuration?'; then
sudo rm -rf /etc/heat
echo 1>&2
fi
if user_wants 'Delete Heat logs?'; then
sudo rm -rf /var/log/heat
echo 1>&2
fi