[Lxm-commits-diff] SF.net SVN: lxm: [5] trunk/bash_scripts/lxmstart
Status: Beta
Brought to you by:
outchy
From: <ou...@us...> - 2007-11-12 22:30:03
|
Revision: 5 http://lxm.svn.sourceforge.net/lxm/?rev=5&view=rev Author: outchy Date: 2007-11-12 14:30:00 -0800 (Mon, 12 Nov 2007) Log Message: ----------- additional checks before launching a VM: test if already launched and test of logical volumes as snapshot source of other snapshots Modified Paths: -------------- trunk/bash_scripts/lxmstart Modified: trunk/bash_scripts/lxmstart =================================================================== --- trunk/bash_scripts/lxmstart 2007-11-09 20:07:47 UTC (rev 4) +++ trunk/bash_scripts/lxmstart 2007-11-12 22:30:00 UTC (rev 5) @@ -13,14 +13,69 @@ for CONFDIR in $XENCONFPATH; do if [ -f "$CONFDIR/$VMNAME" ]; then echo "launching virtual machine $CONFDIR/$VMNAME" + + xm list --long $VMNAME > /dev/null 2> /dev/null + if [ "$?" == "0" ]; then + echo "error virtual machine $VMNAME is already launched" + exit 1 + fi + + DISKLIST=`echo "disk" | python -i "$CONFDIR/$VMNAME" 2>/dev/null` + if [ ! "$?" == "0" ]; then + echo "error while probing disk list" + exit 1 + fi + + echo "disk list is $DISKLIST" + LVLIST=`echo "$DISKLIST" | awk "/\[/ { + sep1 = \"['\\\\\"]\" + sep2 = \",\" + sep3 = \":\" + split(\\\$0, a, sep1) + i = 2 + while (i <= length(a)) { + split(a[i], b, sep2) + if ( b[3] == \"w\" ) { + c = index(b[2], \":cdrom\") + if (c == 0) { + split(b[1], d, sep3) + if (d[1] == \"phy\" ) { + print d[2] + } + } + } + i++ + i++ + } + }"` + + echo "logical volume list is $LVLIST" + + if [ ! -z "$LVLIST" ]; then + for LV in $LVLIST ; do + echo "checking logical volume: $LV" + LVPROP=`lvdisplay "$LV"` + if [ "$?" == "0" ]; then + # this is a logical volume, check if it sources some snapshots + LVSNAPSTATUS=`echo "$LVPROP" | grep "LV snapshot status" | grep "source of"` + if [ ! -z "$LVSNAPSTATUS" ]; then + echo "logical volume $LV sources a snapshot and thus cannot be launched with write access mode" + exit 1 + fi + fi + done + fi + + echo "check of logical volumes passed" + xm create $CONFDIR/$VMNAME - if [ ! "$?" = "0" ]; then + if [ ! "$?" == "0" ]; then echo "error while launching virtual machine $VMNAME" exit 1 fi # auto execute viewer - if [ ! "$2" = "NODISPLAY" ]; then + if [ ! "$2" == "NODISPLAY" ]; then lxmdisplay $VMNAME fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |