# read name from xen config file
rdname() {
- NM=$($CMD create --quiet --dryrun --defconfig "$1" | sed -n 's/^.*(name \(.*\))$/\1/p')
+ NM=$($CMD create --quiet --dryrun --defconfig "$1" 2>&1 | sed -n 's/^.*\(name \(.*\)\)\|\("name": "\([^"]*\)",\?\)$/\2\4/p')
+ NM=$(echo $NM)
}
rdnames() {
}
parseln() {
- if [[ "$1" = "*(domain*" ]]; then
+ if [[ "$1" = *"(domain"* ]]; then
name=;id=
- elif [[ "$1" = "*(name*" ]]; then
+ elif [[ "$1" = *"\"domid\"":* ]]; then
+ name=
+ id=$(echo $1 | sed -s 's/^.*: \([0-9]*\),$/\1/')
+ elif [[ "$1" = *"\"name\":"* ]]; then
+ name=$(echo $1 | sed -s 's/^.*: "\([^"]*\)",$/\1/')
+ elif [[ "$1" = *"(name"* ]]; then
name=$(echo $1 | sed -e 's/^.*(name \(.*\))$/\1/')
- elif [[ "$1" = "*(domid*" ]]; then
+ elif [[ "$1" = *"(domid"* ]]; then
id=$(echo $1 | sed -e 's/^.*(domid \(.*\))$/\1/')
fi
[ -n "$name" -a -n "$id" ] && return 0 || return 1
is_running() {
rdname $1
name=;id=
- $CMD list -l | grep '(\(domain\|domid\|name\)' | \
+ $CMD list -l | grep '[("]\(domain\|domid\|name\)' | \
while read LN; do
parseln "$LN" || continue
[ $id = 0 ] && continue
all_zombies() {
name=;id=
- $CMD list -l | grep '(\(domain\|domid\|name\)' | \
+ $CMD list -l | grep '[("]\(domain\|domid\|name\)' | \
while read LN; do
parseln "$LN" || continue
if test $id = 0; then continue; fi
fi
echo -n "Shutting down Xen domains:"
name=;id=
- $CMD list -l | grep '(\(domain\|domid\|name\)' | \
+ $CMD list -l | grep '[("]\(domain\|domid\|name\)' | \
while read LN; do
parseln "$LN" || continue
if test $id = 0; then continue; fi
check_domain_up()
{
+ local result
+ result=1
name=;id=
- $CMD list -l | grep '(\(domain\|domid\|name\)' | \
+ $CMD list -l | grep '[("]\(domain\|domid\|name\)' | \
while read LN; do
- parseln "$LN" || continue
- if test $id = 0; then continue; fi
- case $name in
- ($1)
- return 0
- ;;
- esac
+ parseln "$LN" || continue
+ if test $id = 0; then continue; fi
+ if [ "$name" = "$1" ] ; then
+ echo 1
+ break
+ fi
done
- return 1
}
check_all_auto_domains_up()
for nm in $XENDOMAINS_AUTO/*; do
rdname $nm
found=0
- if check_domain_up "$NM"; then
- echo -n " $name"
+ if [ -n "$(check_domain_up "$NM")" ] ; then
+ echo -n " $NM"
else
missing="$missing $NM"
fi
start
;;
status)
- if [ -f /var/lock/subsys/xendomains; then
+ if [ -f /var/lock/subsys/xendomains ]; then
echo -n "Checking for xendomains:"
check_all_auto_domains_up
check_all_saved_domains_up
+ echo
fi
;;
*)