[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] tools: Allow xendomains to handle domain names >16 characters



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1182266962 -3600
# Node ID 865c4ae59be3b0aa7e375b929414244d1e5bdf74
# Parent  896b536d66c9952fac4bd1c9a6e3f562debec19d
tools: Allow xendomains to handle domain names >16 characters

The xendomains init script parses the output of "xm list", and
since xm list restricts the length of domains to 16 characters the
xendomain script cannot handle long domain names.

This patch makesit parse the output of "xm list -l" instead.

Signed-off-by: Mark McLoughlin <markmc@xxxxxxxxxx>
---
 tools/examples/init.d/xendomains |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff -r 896b536d66c9 -r 865c4ae59be3 tools/examples/init.d/xendomains
--- a/tools/examples/init.d/xendomains  Tue Jun 19 16:08:15 2007 +0100
+++ b/tools/examples/init.d/xendomains  Tue Jun 19 16:29:22 2007 +0100
@@ -182,25 +182,31 @@ rdnames()
 
 parseln()
 {
-    name=`echo "$1" | cut -c0-17`
-    name=${name%% *}
-    rest=`echo "$1" | cut -c18- `
-    read id mem cpu vcpu state tm < <(echo "$rest")
+    if [[ "$1" =~ "\(domain" ]]; then
+        name=;id=
+    else if [[ "$1" =~ "\(name" ]]; then
+        name=$(echo $1 | sed -e 's/^.*(name \(.*\))$/\1/')
+    else if [[ "$1" =~ "\(domid" ]]; then
+        id=$(echo $1 | sed -e 's/^.*(domid \(.*\))$/\1/')
+    fi; fi; fi
+
+    [ -n "$name" -a -n "$id" ] && return 0 || return 1
 }
 
 is_running()
 {
     rdname $1
     RC=1
+    name=;id=
     while read LN; do
-       parseln "$LN"
+       parseln "$LN" || continue
        if test $id = 0; then continue; fi
        case $name in 
            ($NM)
                RC=0
                ;;
        esac
-    done < <(xm list | grep -v '^Name')
+    done < <(xm list -l | grep '(\(domain\|domid\|name\)')
     return $RC
 }
 
@@ -267,13 +273,14 @@ start()
 
 all_zombies()
 {
+    name=;id=
     while read LN; do
-       parseln "$LN"
+       parseln "$LN" || continue
        if test $id = 0; then continue; fi
        if test "$state" != "-b---d" -a "$state" != "-----d"; then
            return 1;
        fi
-    done < <(xm list | grep -v '^Name')
+    done < <(xm list -l | grep '(\(domain\|domid\|name\)')
     return 0
 }
 
@@ -309,8 +316,9 @@ stop()
        rdnames
     fi
     echo -n "Shutting down Xen domains:"
+    name=;id=
     while read LN; do
-       parseln "$LN"
+       parseln "$LN" || continue
        if test $id = 0; then continue; fi
        echo -n " $name"
        if test "$XENDOMAINS_AUTO_ONLY" = "true"; then
@@ -384,7 +392,7 @@ stop()
            fi
            kill $WDOG_PID >/dev/null 2>&1
        fi
-    done < <(xm list | grep -v '^Name')
+    done < <(xm list -l | grep '(\(domain\|domid\|name\)')
 
     # NB. this shuts down ALL Xen domains (politely), not just the ones in
     # AUTODIR/*
@@ -409,15 +417,16 @@ stop()
 
 check_domain_up()
 {
+    name=;id=
     while read LN; do
-       parseln "$LN"
+       parseln "$LN" || continue
        if test $id = 0; then continue; fi
        case $name in 
            ($1)
                return 0
                ;;
        esac
-    done < <(xm list | grep -v "^Name")
+    done < <(xm list -l | grep '(\(domain\|domid\|name\)')
     return 1
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.