clean.sh
9a413abc
 #!/bin/bash
995eb927
 
 # **clean.sh**
 
 # ``clean.sh`` does its best to eradicate traces of a Grenade
 # run except for the following:
 # - both base and target code repos are left alone
 # - packages (system and pip) are left alone
 
 # This means that all data files are removed.  More??
 
 # Keep track of the current devstack directory.
 TOP_DIR=$(cd $(dirname "$0") && pwd)
 
 # Import common functions
 source $TOP_DIR/functions
 
b9e25135
 FILES=$TOP_DIR/files
 
995eb927
 # Load local configuration
53753293
 source $TOP_DIR/openrc
995eb927
 
 # Get the variables that are set in stack.sh
58f9cf76
 if [[ -r $TOP_DIR/.stackenv ]]; then
     source $TOP_DIR/.stackenv
 fi
995eb927
 
 # Determine what system we are running on.  This provides ``os_VENDOR``,
 # ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
 # and ``DISTRO``
 GetDistro
 
53ffc713
 # Import apache functions
 source $TOP_DIR/lib/apache
 source $TOP_DIR/lib/ldap
995eb927
 
 # Import database library
 source $TOP_DIR/lib/database
 source $TOP_DIR/lib/rpc_backend
 
 source $TOP_DIR/lib/tls
53ffc713
 
59d9cecb
 source $TOP_DIR/lib/oslo
67168e80
 source $TOP_DIR/lib/lvm
995eb927
 source $TOP_DIR/lib/horizon
 source $TOP_DIR/lib/keystone
 source $TOP_DIR/lib/glance
 source $TOP_DIR/lib/nova
 source $TOP_DIR/lib/cinder
 source $TOP_DIR/lib/swift
 source $TOP_DIR/lib/heat
5a9739a4
 source $TOP_DIR/lib/neutron-legacy
53ffc713
 source $TOP_DIR/lib/ironic
 
995eb927
 
cdf3d766
 # Extras Source
 # --------------
 
 # Phase: source
 if [[ -d $TOP_DIR/extras.d ]]; then
     for i in $TOP_DIR/extras.d/*.sh; do
         [[ -r $i ]] && source $i source
     done
 fi
995eb927
 
 # See if there is anything running...
 # need to adapt when run_service is merged
 SESSION=$(screen -ls | awk '/[0-9].stack/ { print $1 }')
 if [[ -n "$SESSION" ]]; then
     # Let unstack.sh do its thing first
     $TOP_DIR/unstack.sh --all
 fi
 
cdf3d766
 # Run extras
 # ==========
 
 # Phase: clean
e6843e5e
 load_plugin_settings
a1701fab
 run_phase clean
 
cdf3d766
 if [[ -d $TOP_DIR/extras.d ]]; then
     for i in $TOP_DIR/extras.d/*.sh; do
         [[ -r $i ]] && source $i clean
     done
 fi
 
995eb927
 # Clean projects
9a413abc
 
 # BUG: cinder tgt doesn't exit cleanly if it's not running.
 cleanup_cinder || /bin/true
 
995eb927
 cleanup_glance
 cleanup_keystone
 cleanup_nova
b05c8769
 cleanup_neutron
995eb927
 cleanup_swift
 
b9e25135
 if is_service_enabled ldap; then
     cleanup_ldap
 fi
 
2aa2a89c
 # Do the hypervisor cleanup until this can be moved back into lib/nova
e4fa7213
 if is_service_enabled nova && [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; then
2aa2a89c
     cleanup_nova_hypervisor
 fi
 
995eb927
 # Clean out /etc
b00e4181
 sudo rm -rf /etc/keystone /etc/glance /etc/nova /etc/cinder /etc/swift /etc/heat /etc/neutron
995eb927
 
 # Clean out tgt
53ffc713
 sudo rm -f /etc/tgt/conf.d/*
995eb927
 
 # Clean up the message queue
 cleanup_rpc_backend
 cleanup_database
 
93d09c24
 # Clean out data and status
 sudo rm -rf $DATA_DIR $DEST/status
 
 # Clean out the log file and log directories
 if [[ -n "$LOGFILE" ]] && [[ -f "$LOGFILE" ]]; then
     sudo rm -f $LOGFILE
 fi
 if [[ -n "$LOGDIR" ]] && [[ -d "$LOGDIR" ]]; then
     sudo rm -rf $LOGDIR
 fi
53ffc713
 if [[ -n "$SCREEN_LOGDIR" ]] && [[ -d "$SCREEN_LOGDIR" ]]; then
     sudo rm -rf $SCREEN_LOGDIR
 fi
 
b1d8e8e2
 # Clean up venvs
61045ca5
 DIRS_TO_CLEAN="$WHEELHOUSE ${PROJECT_VENV[@]} .config/openstack"
b1d8e8e2
 rm -rf $DIRS_TO_CLEAN
 
995eb927
 # Clean up files
2e2b28b5
 
ecd05637
 FILES_TO_CLEAN=".localrc.auto docs/files docs/html shocco/ stack-screenrc test*.conf* test.ini*"
2e2b28b5
 FILES_TO_CLEAN+=".stackenv .prereqs"
 
cb415697
 for file in $FILES_TO_CLEAN; do
ecd05637
     rm -rf $TOP_DIR/$file
2e2b28b5
 done