function _pkgSetVarsBase
{
case "$vserver" in
- /*)
+ ./*|/*)
if test -d "$vserver/vdir"; then
BASEDIR=$vserver
VDIR=$(getPhysicalDir "$vserver/vdir")
}
VDIR=$BASEDIR/vdir
- test -d "$VDIR" || VDIR=/vservers/$vserver
+ test -d "$VDIR" || VDIR=$DEFAULT_VSERVERDIR/$vserver
VDIR=$(getPhysicalDir "$VDIR")
PKGDIR=$BASEDIR/apps/pkgmgmt
"$_SECURE_MOUNT" --chroot "$VDIR" -n --secure --bind "$RPMSTATEDIR" "$_rpmdb_mntpoint"
test -z "$WORKAROUND_106057" || mount -n --bind "$RPMSTATEDIR" "$_rpmdb_mntpoint"
+
+ test -e "$VDIR"/proc/self/status || \
+ "$_SECURE_MOUNT" --chroot "$VDIR" -n --secure -t proc none /proc
}
function _pkgSetEnvBase
_PKG_VSERVER=$vserver
}
+function isAvoidNamespace
+{
+ test ! -e "$1"/namespace || return 1
+ test -e "$CONFDIR"/.defaults/nonamespace -o \
+ -e "$1"/nonamespace
+}
+
function getAllVservers
{
local i
test -d "$i" || continue
test ! -e "$i"/disabled || continue
test -d "$i"/vdir || continue
+ case "$i" in
+ *.~*~) continue;;
+ esac
_tmp=( "${_tmp[@]}" "${i##$CONFDIR/}")
done
function getVserverStatus
{
test -r "$1"/run || return 1
- eval read "$2" <"$1"/run
+
+ local _ctx
+ read _ctx <"$1"/run
+ eval "$2"=\$_ctx
test "$3" || return 0
- local _tmp=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$ctx" | $_WC -l )
+ local _tmp=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$_ctx" | $_WC -l )
eval "$3"=\$_tmp
test "$4" -a $_tmp = 0 || return 0
- _tmp=$(readlink "$1/run")
+ _tmp=$($_READLINK "$1/run")
test "$_tmp" || return 1
rm -f "$_tmp"
return 0
}
+## Usage: isCtxRunning <ctx>
+function isCtxRunning
+{
+ local _tmp=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$1" | $_WC -l )
+ test $_tmp -gt 0
+}
+
## Usage: isVserverRunning <vdir> [<ctx-varname>]
function isVserverRunning
{
test -z "$x_failed"
}
+
+## Usage: isKernelAPI <ver> [<cmp-modifier>]
+function isKernelAPI
+{
+ local api=$($_VSERVER_INFO - APIVER) || api=0
+ test $[ $api ] -${2:-ge} $[ $1 ]
+}