summaryrefslogtreecommitdiffstats
path: root/xci/files
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2018-03-19 16:22:47 +0000
committerMarkos Chandras <mchandras@suse.de>2018-03-20 17:29:21 +0000
commite47cdad33ce29f7db4e0cb72c323ed63504afe16 (patch)
tree8f1481015ebe6a5777c0dd936f7b8db11b8df16c /xci/files
parent346df57c53fde3795fbe675477cdb2c1a453b6f7 (diff)
xci: Move cleanup script outside of bifrost
The cleanup script has grown quite a bit over time and it now does more things than cleaning up old 'bifrost' artifacts to move it to the global files directory so it can be used by all installers. Change-Id: Ibf70ff255f14e798216cedc71fb7c5f5476b964a Signed-off-by: Markos Chandras <mchandras@suse.de>
Diffstat (limited to 'xci/files')
-rwxr-xr-xxci/files/xci-destroy-env.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/xci/files/xci-destroy-env.sh b/xci/files/xci-destroy-env.sh
new file mode 100755
index 00000000..9d53dc15
--- /dev/null
+++ b/xci/files/xci-destroy-env.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 RedHat and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# We need to execute everything as root
+if [[ $(whoami) != "root" ]]; then
+ echo "Error: This script must be run as root!"
+ exit 1
+fi
+
+# Start fresh
+rm -rf /opt/stack
+# HOME is normally set by sudo -H
+rm -rf ${HOME}/.config/openstack
+rm -rf ${HOME}/.ansible
+
+# bifrost installs everything on venv so we need to look there if virtualbmc is not installed on the host.
+if which vbmc &>/dev/null || { [[ -e /opt/stack/bifrost/bin/activate ]] && source /opt/stack/bifrost/bin/activate; }; then
+ # Delete all libvirt VMs and hosts from vbmc (look for a port number)
+ for vm in $(vbmc list | awk '/[0-9]/{{ print $2 }}'); do
+ if which virsh &>/dev/null; then
+ virsh destroy $vm || true
+ virsh undefine $vm || true
+ fi
+ vbmc delete $vm
+ done
+ which vbmc &>/dev/null || { [[ -e /opt/stack/bifrost/bin/activate ]] && deactivate; }
+fi
+
+# Destroy all XCI VMs if the previous operation failed
+[[ -n ${XCI_FLAVOR} ]] && \
+ for vm in ${TEST_VM_NODE_NAMES}; do
+ if which virsh &>/dev/null; then
+ virsh destroy $vm || true
+ virsh undefine $vm || true
+ fi
+ done
+
+service ironic-conductor stop || true
+
+echo "removing inventory files created by previous builds"
+rm -rf /tmp/baremetal.*
+
+echo "removing ironic database"
+if $(which mysql &> /dev/null); then
+ mysql_ironic_user=$(sudo grep "connection" /etc/ironic/ironic.conf | cut -d : -f 2 )
+ msyql_ironic_password=$(sudo grep "connection" /etc/ironic/ironic.conf | cut -d : -f 3)
+ mysql -u${mysql_ironic_user#*//} -p${msyql_ironic_password%%@*} --execute "drop database ironic;"
+fi
+echo "removing leases"
+[[ -e /var/lib/misc/dnsmasq/dnsmasq.leases ]] && > /var/lib/misc/dnsmasq/dnsmasq.leases
+echo "removing logs"
+rm -rf /var/log/libvirt/baremetal_logs/*
+
+# clean up dib images by default
+CLEAN_DIB_IMAGES=${CLEAN_DIB_IMAGES:-true}
+
+if [ $CLEAN_DIB_IMAGES = "true" ]; then
+ rm -rf /httpboot /tftpboot
+ mkdir /httpboot /tftpboot
+ chmod -R 755 /httpboot /tftpboot
+fi
+
+# remove VM disk images
+rm -rf /var/lib/libvirt/images/*.qcow2
+
+echo "restarting services"
+service dnsmasq restart || true
+service libvirtd restart
+service ironic-api restart || true
+service ironic-conductor start || true
+service ironic-inspector restart || true