chiark / gitweb /
: ${:=} not ${:=}
[autopkgtest.git] / xen / cleanup
index e822dd7f7297dbdcaae2e12a416dd933d74c377a..050772062b48ad7cc41e3c58ab8e956bad55fe84 100755 (executable)
@@ -1,12 +1,27 @@
 #!/bin/bash
 set -e
-. ./config
+adt_readconfig_needlock=y
+. ${ADT_XENLVM_SHARE:=/usr/share/autopkgtest/xenlvm}/readconfig
+test $nonoptargs = 0 || fail "non-option arguments not allowed"
 
-mkdir -p $adt_play $snap
+mkdir -p $adt_play
 
-try () { "$@" >/dev/null 2>&1 ||:; }
+try_es () { printf "%s\n" "- $*"; "$@" >/dev/null 2>&1; }
+try () { try_es "$@" ||:; }
 
-try xm destroy $adt_xmname
-try umount $adt_lvm_baselv
-try dmsetup remove $adt_devmapper_cowdev
-rm -f $lvfsptr
+n=0
+try xm destroy $adt_xmname 2>/dev/null
+try umount $lvm_baselv_namepath
+for fs in fs swap; do
+ swap=${fs#fs}; eval "
+  sleeptime=0
+  while try_es dmsetup info \$adt_devmapper_${swap}cowdev; do
+       try dmsetup remove \$adt_devmapper_${swap}cowdev
+       [ \$sleeptime -le 5 ] || \
+               fail "timed out trying dmsetup info/remove ${swap}"
+       sleep \$sleeptime
+       sleeptime=\$(( \$sleeptime + 1 ))
+  done
+ "
+done
+rm -f $lvm_fslink_ptr $lvm_swaplink_ptr