aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-19 16:29:22 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-19 16:29:22 +0100
commit477ac069bc9607e5f0f405d4579440a740712ed3 (patch)
tree83867c1e91076b96717495dd2e5cca830dcbcf5b /tools
parent0edf82adb3f1f2f60c40b0e73ba3b967a7ec5554 (diff)
downloadxen-477ac069bc9607e5f0f405d4579440a740712ed3.tar.gz
xen-477ac069bc9607e5f0f405d4579440a740712ed3.tar.bz2
xen-477ac069bc9607e5f0f405d4579440a740712ed3.zip
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@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/examples/init.d/xendomains33
1 files changed, 21 insertions, 12 deletions
diff --git a/tools/examples/init.d/xendomains b/tools/examples/init.d/xendomains
index 461037e3ac..6ad7a9b9e9 100644
--- a/tools/examples/init.d/xendomains
+++ b/tools/examples/init.d/xendomains
@@ -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
}