Let vserver <xid> enter/stop work.
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 18 Feb 2010 14:37:51 +0000 (14:37 +0000)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 18 Feb 2010 14:37:51 +0000 (14:37 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2876 94cd875c-1c1d-0410-91d2-eb244daf1a30

scripts/vserver

index 8b7e8cb..c9f9f24 100755 (executable)
@@ -165,25 +165,27 @@ test "$cmd" != build || { shift 2; exec $_VNAMESPACE --new -- \
 
 allow_legacy=
 
+vserver="${vserver%%/}"
 case "$vserver" in
-    (./*) VSERVER_DIR="`pwd`/$vserver";;
-    (/*)  VSERVER_DIR="$vserver";;
-    (*)          VSERVER_DIR="$__CONFDIR/$vserver"
-         allow_legacy=1
-         ;;
+    (./*)   VSERVER_DIR="`pwd`/$vserver";;
+    (/*)    VSERVER_DIR="$vserver";;
+    (*)            # Check if this is a context id
+           context=$(vuname --get --xid "$vserver" 2>/dev/null)
+           if test -d "$context"; then
+               VSERVER_DIR="$context"
+           else
+               VSERVER_DIR="$__CONFDIR/$vserver"
+               do_legacy=
+               test ! -e "$VSERVER_DIR/legacy" || do_legacy=1
+               test -d "$VSERVER_DIR" -o ! -e "$__CONFDIR/$vserver.conf" || do_legacy=1
+
+               test -z "$do_legacy" || {
+                   echo $"WARNING: can not find configuration, assuming legacy method" >&2
+                   exec "$_VSERVER_LEGACY" "$@"
+               }
+           fi
+           ;;
 esac
-VSERVER_DIR="${VSERVER_DIR%%/}"
-
-if test -n "$allow_legacy"; then
-    do_legacy=
-    test ! -e "$VSERVER_DIR/legacy" || do_legacy=1
-    test -d "$VSERVER_DIR" -o ! -e "$__CONFDIR/$vserver.conf" || do_legacy=1
-
-    test -z "$do_legacy" || {
-       echo $"WARNING: can not find configuration, assuming legacy method" >&2
-       exec "$_VSERVER_LEGACY" "$@"
-    }
-fi
 
 test -d "$VSERVER_DIR" || {
     echo $"\