testing: Ensure no guest is running when modifying images
authorTobias Brunner <tobias@strongswan.org>
Fri, 10 Oct 2014 16:37:13 +0000 (18:37 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 10 Oct 2014 17:03:50 +0000 (19:03 +0200)
Sometimes guests are not stopped properly. If images are then modified
they will be corrupted.

testing/scripts/build-baseimage
testing/scripts/build-guestimages
testing/scripts/build-rootimage
testing/scripts/build-strongswan
testing/scripts/function.sh

index 552e98c..075fd8e 100755 (executable)
@@ -7,6 +7,7 @@ DIR=$(dirname `readlink -f $0`)
 . $DIR/function.sh
 
 [ `id -u` -eq 0 ] || die "You must be root to run $0"
+running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
 
 check_commands debootstrap mkfs.ext3 partprobe qemu-img qemu-nbd sfdisk
 
index 245fc25..3e107c0 100755 (executable)
@@ -25,6 +25,7 @@ HOSTSDIR=$DIR/../hosts
 [ `id -u` -eq 0 ] || die "You must be root to run $0"
 [ -f $ROOTIMG ] || die "Root image $ROOTIMG not found"
 [ -f $HOSTDIR ] || die "Hosts directory $HOSTSDIR not found"
+running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
 
 check_commands partprobe qemu-img qemu-nbd
 
index 8e10ce5..a84104a 100755 (executable)
@@ -22,6 +22,7 @@ DIR=$(dirname `readlink -f $0`)
 
 [ `id -u` -eq 0 ] || die "You must be root to run $0"
 [ -f "$BASEIMG" ] || die "Base image $BASEIMG not found"
+running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
 
 check_commands partprobe qemu-img qemu-nbd
 
index 69cb833..c52dddd 100755 (executable)
@@ -12,6 +12,7 @@ SWANDIR=${1:+$(readlink -f $1)}
 [ `id -u` -eq 0 ] || die "You must be root to run $0"
 [ -f "$BASEIMG" ] || die "Base image $BASEIMG not found"
 [ -f "$ROOTIMG" ] || die "Root image $ROOTIMG not found"
+running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
 
 [ -f $SWANDIR/src/libstrongswan/asn1/oid.txt ] || die "strongSwan not found in $SWANDIR"
 
index c476967..2dd465c 100755 (executable)
@@ -156,6 +156,18 @@ check_commands()
        done
 }
 
+# check if any of the given virtual guests are running
+# $* - names of guests to check
+running_any()
+{
+       command -v virsh >/dev/null || return 1
+       for host in $*
+       do
+               virsh list --name | grep "^$host$" >/dev/null && return 0
+       done
+       return 1
+}
+
 #############################################
 # search and replace strings throughout a
 # whole directory