X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Ffunctions;h=51318e7d3cda4d10cf2ede43671a1d23bc779031;hb=47475c15809648d8f76d545a903cc6d83108439b;hp=69e57f05deedc6d492e0c90f14c61d76870c7a3f;hpb=9c78378bebc1a9f3d400f422df8ede9efea57dea;p=util-vserver.git diff --git a/scripts/functions b/scripts/functions index 69e57f0..51318e7 100644 --- a/scripts/functions +++ b/scripts/functions @@ -268,6 +268,16 @@ function unlock _VS_LOCKS="$@" } +function _getVserverDir +{ + local vserver="$1" + case "$vserver" in + ./*) VSERVER_DIR=`pwd`/$vserver ;; + /*) VSERVER_DIR=$vserver ;; + *) VSERVER_DIR=$__CONFDIR/$vserver;; + esac +} + function _pkgMountBindDir() { test "$1" != "$2" || return 0 @@ -480,6 +490,18 @@ function isAvoidNamespace -e "$cfgdir"/nonamespace } +function isNamespaceCleanup +{ + local cfgdir + + $_VSERVER_INFO - FEATURE namespace || return 1 + cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || return 1 + test -e "$cfgdir"/nonamespace-cleanup && return 1 + test -e "$__CONFDIR"/.defaults/namespace-cleanup -o \ + -e "$cfgdir"/namespace-cleanup && return 0 + return 1 +} + ## Usage: getAllVservers [*] function getAllVservers { @@ -992,6 +1014,30 @@ function vshelper.getSyncTimeout eval $2=\$_vgst_tmp } +function vshelper.initStopSync +{ + local _iss_sync_dir=$($_MKTEMPDIR vshelper-stop-sync.XXXXXX) || { + warning $"Failed to generate directory for vshelper sync" + exit 1 + } + $_MKFIFO -m700 "$_iss_sync_dir/pipe" + + eval "$1"=\$_iss_sync_dir + VSHELPER_STOP_SYNC="$_iss_sync_dir/pipe" + export VSHELPER_STOP_SYNC +} + +function vshelper.waitForStopSync +{ + local sync_dir=$1 + cat "$sync_dir/pipe" &> /dev/null + rm -fr "$sync_dir" +} + +function vshelper.doStopSync +{ + test ! -p "$VSHELPER_STOP_SYNC" || echo stopped > "$VSHELPER_STOP_SYNC" +} function _rpmFake.getCapFlags {