From: Daniel Hokka Zakrisson Date: Thu, 18 Jan 2007 16:35:03 +0000 (+0000) Subject: Add support for vdevmap in the configuration. X-Git-Tag: release-0.30.214~145 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6218a85294eaebd9c2a0b57f2d7c5f086a3a129c;p=util-vserver.git Add support for vdevmap in the configuration. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2460 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/scripts/util-vserver-vars.pathsubst b/scripts/util-vserver-vars.pathsubst index 8c1e4c2..956c93c 100644 --- a/scripts/util-vserver-vars.pathsubst +++ b/scripts/util-vserver-vars.pathsubst @@ -73,6 +73,7 @@ _VAPT_GET="$__SBINDIR/vapt-get" _VAPT_GET_WORKER="$__PKGLIBDIR/vapt-get-worker" _VATTRIBUTE="$__SBINDIR/vattribute" _VCONTEXT="$__SBINDIR/vcontext" +_VDEVMAP="$__SBINDIR/vdevmap" _VDLIMIT="$__SBINDIR/vdlimit" _VDU="$__SBINDIR/vdu" _VHASHIFY="$__PKGLIBDIR/vhashify" diff --git a/scripts/vserver.functions b/scripts/vserver.functions index ba07f33..b0bf171 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -1226,3 +1226,28 @@ function _namespaceCleanup done } +function loadDeviceMap +{ + local xid="$1" + local dir="$2" + local flags device target + + test -d "$dir" || return 0 + + for i in "$dir"/*; do + test -d "$i" || continue + + local -a vdevmap_opts=() + test -e "$i/create" && vdevmap_opts=( "${vdevmap_opts[@]}" --create ) + test -e "$i/open" && vdevmap_opts=( "${vdevmap_opts[@]}" --open ) + test -e "$i/remap" && vdevmap_opts=( "${vdevmap_opts[@]}" --remap ) + + getFileValue flags "$i/flags" || : + getFileValue device "$i/device" || : + getFileValue target "$i/target" || : + vdevmap_opts=( "${vdevmap_opts[@]}" ${flags:+--flags "$flags"} \ + ${device:+--device "$device"} ${target:+--target "$target"} ) + + $_VDEVMAP --xid "$xid" "${vdevmap_opts[@]}" || return $? + done +} diff --git a/sysv/util-vserver b/sysv/util-vserver index 5768524..84636ba 100755 --- a/sysv/util-vserver +++ b/sysv/util-vserver @@ -14,6 +14,8 @@ test -e "$UTIL_VSERVER_VARS" || { LOCKFILE=util-vserver . "$_LIB_VSERVER_INIT_FUNCTIONS" +. "$_LIB_FUNCTIONS" +. "$__PKGLIBDIR/vserver.functions" function set_helper() @@ -51,6 +53,9 @@ function start() set_helper _endResult $? local retval=$? + _beginResult $"Loading default device map" + loadDeviceMap 0 "$__CONFDIR/.defaults/apps/vdevmap" + _endResult $? test "$retval" -ne 0 || touch "$lockfile" return $retval } @@ -61,11 +66,12 @@ function stop() _beginResult $"Stopping all running guests" $_START_VSERVERS -j 1 --all --stop _endResult $? - local retval=$? _beginResult $"Killing all running contexts" kill_contexts _endResult $? + local retval=$? $_RM -f "$lockfile" + return $retval } function restart()