From 229904d632d9f4adfd0511131b17a2aecc8d4090 Mon Sep 17 00:00:00 2001 From: David Galloway Date: Mon, 14 Jun 2021 16:11:51 -0400 Subject: [PATCH] ceph-{ansible,container}*: Globally destroy all stale VMs Signed-off-by: David Galloway --- ceph-ansible-nightly/build/build | 1 + ceph-ansible-prs/build/build | 1 + ceph-ansible-scenario/build/build | 1 + ceph-container-nighlity/build/build | 1 + ceph-container-prs/build/build | 1 + scripts/build_utils.sh | 23 +++++++++++++++++++++++ 6 files changed, 28 insertions(+) diff --git a/ceph-ansible-nightly/build/build b/ceph-ansible-nightly/build/build index 7b53d9d23..dd809f5ad 100644 --- a/ceph-ansible-nightly/build/build +++ b/ceph-ansible-nightly/build/build @@ -52,6 +52,7 @@ function run_tox { ######## # MAIN # ######## +prune_stale_vagrant_running_vms delete_libvirt_vms clear_libvirt_networks restart_libvirt_services diff --git a/ceph-ansible-prs/build/build b/ceph-ansible-prs/build/build index 9a70a950f..84d770a33 100644 --- a/ceph-ansible-prs/build/build +++ b/ceph-ansible-prs/build/build @@ -11,6 +11,7 @@ source $VENV/activate WORKDIR=$(mktemp -td tox.XXXXXXXXXX) +prune_stale_vagrant_running_vms delete_libvirt_vms clear_libvirt_networks restart_libvirt_services diff --git a/ceph-ansible-scenario/build/build b/ceph-ansible-scenario/build/build index 2144e9bfc..637f9c13e 100644 --- a/ceph-ansible-scenario/build/build +++ b/ceph-ansible-scenario/build/build @@ -11,6 +11,7 @@ source $VENV/activate WORKDIR=$(mktemp -td tox.XXXXXXXXXX) +prune_stale_vagrant_running_vms delete_libvirt_vms clear_libvirt_networks restart_libvirt_services diff --git a/ceph-container-nighlity/build/build b/ceph-container-nighlity/build/build index 027c276af..b8e20b778 100644 --- a/ceph-container-nighlity/build/build +++ b/ceph-container-nighlity/build/build @@ -11,6 +11,7 @@ source $VENV/activate WORKDIR=$(mktemp -td tox.XXXXXXXXXX) +prune_stale_vagrant_running_vms delete_libvirt_vms clear_libvirt_networks restart_libvirt_services diff --git a/ceph-container-prs/build/build b/ceph-container-prs/build/build index 027c276af..b8e20b778 100644 --- a/ceph-container-prs/build/build +++ b/ceph-container-prs/build/build @@ -11,6 +11,7 @@ source $VENV/activate WORKDIR=$(mktemp -td tox.XXXXXXXXXX) +prune_stale_vagrant_running_vms delete_libvirt_vms clear_libvirt_networks restart_libvirt_services diff --git a/scripts/build_utils.sh b/scripts/build_utils.sh index 09c362b6d..b2dadf77c 100644 --- a/scripts/build_utils.sh +++ b/scripts/build_utils.sh @@ -1018,6 +1018,29 @@ prune_stale_vagrant_vms() { vagrant global-status --prune || true } +prune_stale_vagrant_running_vms() { + # The method of cleaning up VMs in the function above isn't aggressive enough. + cd $HOME + running_vagrant_vms=$(vagrant global-status | grep "running" | awk '{ print $1 }') + for uuid in $running_vagrant_vms; do + if ! vagrant destroy -f $uuid; then + echo "Destroying $uuid failed. Deleting its directory." + failed_path=$(vagrant global-status | grep $uuid | awk '{ print $5 }') + if [ -z ${failed_path+x} ]; then + echo "Didn't get a path for $uuid. Skipping." + else + if [[ $failed_path =~ $WORKSPACE ]]; then + echo "Skipping $failed_path. That's the current job." + else + rm -rf $failed_path + fi + fi + vagrant global-status --prune + fi + done + cd $WORKSPACE +} + delete_libvirt_vms() { # Delete any VMs leftover from previous builds. # Primarily used for Vagrant VMs leftover from docker builds. -- 2.47.3