From: David Galloway Date: Wed, 17 May 2017 15:51:37 +0000 (-0400) Subject: scripts: Add function to delete leftover vagrant VMs X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=038f83a796872629d1544975556be6b3d2996478;p=ceph-build.git scripts: Add function to delete leftover vagrant VMs Some of the network errors thrown by libvirt when running Docker builds were because the slave had leftover Vagrant VMs that didn't get destroyed. This PR ensures all slaves being used for Docker tests will have VMs and disk images cleaned up if the build fails. Signed-off-by: David Galloway --- diff --git a/ceph-docker-nightly/build/teardown b/ceph-docker-nightly/build/teardown index 5790664a..a2d47b9e 100644 --- a/ceph-docker-nightly/build/teardown +++ b/ceph-docker-nightly/build/teardown @@ -11,3 +11,5 @@ for scenario in $scenarios; do vagrant destroy -f cd - done + +delete_vagrant_docker_vms diff --git a/ceph-docker-prs/build/teardown b/ceph-docker-prs/build/teardown index 5790664a..a2d47b9e 100644 --- a/ceph-docker-prs/build/teardown +++ b/ceph-docker-prs/build/teardown @@ -11,3 +11,5 @@ for scenario in $scenarios; do vagrant destroy -f cd - done + +delete_vagrant_docker_vms diff --git a/scripts/build_utils.sh b/scripts/build_utils.sh index 2c8c2567..df254790 100644 --- a/scripts/build_utils.sh +++ b/scripts/build_utils.sh @@ -407,6 +407,19 @@ setup_pbuilder() { fi } +delete_vagrant_docker_vms() { + # Delete any vagrant/libvirt VMs leftover from a failed docker build + libvirt_vms=`sudo virsh list --all --name | grep docker` + for vm in $libvirt_vms; do + # Destroy returns a non-zero rc if the VM's not running + sudo virsh destroy $vm || true + sudo virsh undefine $vm || true + done + # Clean up any leftover disk images + sudo rm -f /var/lib/libvirt/images/docker*.img + sudo virsh pool-refresh default +} + clear_libvirt_networks() { # Sometimes, networks may linger around, so we must ensure they are killed: networks=`sudo virsh net-list --all | grep active | egrep -v "(default|libvirt)" | cut -d ' ' -f 2`