start to track Daniel's version
[util-vserver.git] / scripts / vserver-setup.functions
diff --git a/scripts/vserver-setup.functions b/scripts/vserver-setup.functions
deleted file mode 100644 (file)
index 31aab65..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-# $Id: vserver-setup.functions 2517 2007-03-18 22:02:22Z dhozac $      --*- sh -*--
-
-# Copyright (C) 2003,2004,2005,2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-#  
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#  
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#  
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-SETUP_HOSTNAME=
-SETUP_NETDEV=
-SETUP_NETMASK=
-SETUP_NETPREFIX=
-SETUP_NETBCAST=
-SETUP_LOCKFILE=
-SETUP_CONFDIR=
-SETUP_CONTEXT=
-SETUP_INITSTYLE=
-SETUP_CPUSET=
-SETUP_CPUSETCPUS=
-SETUP_CPUSETMEMS=
-SETUP_CPUSETVIRT=
-
-declare -a SETUP_INTERFACES=()
-declare -a SETUP_FLAGS=()
-
-declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:,cpusetvirt"
-declare -r SETUP_HELPMSG=$"
-    --context   ...  the static context of the vserver [default: none; one will
-                     be generated for you]
-    --confdir   ...  [default: $__CONFDIR/<name>]
-    --lockfile <filename>
-               ...  [default: $__RUNDIR/<name>]
-    --hostname <hostname>
-    --netdev   <device>
-    --netbcast <broadcast>
-    --netmask <netmask>|--netprefix <prefixlen>
-                ...  sets the  default netmask  (a.b.c.d quadruple)  or prefixlen
-                    (length of the interface)
-    --interface [<name-suffix>=][<device>:]<ip>[/<mask|prefixlen>]
-                ...  declares an network-interface;  this option can be specified
-                    multiple times
-    --flags <flags>+
-                ...  sets comma-separated list of flags; possible flags are
-                    lock:  Prevent the vserver from setting new security context
-                    sched: Merge  scheduler priority  of all processes in the
-                           vserver so that it acts a like a single
-                           one (kernel 2.4 only).
-                     nproc: Limit the number of processes in the vserver
-                           according to ulimit  (instead of a per user limit,
-                           this becomes a per vserver limit)
-                    private: No other process can join this security context.
-                           Even root
-    --cpuset <name>
-                ...  declares the CPUSET this vserver will run in [default: none]
-    --cpusetcpus <number[-number][:<exclusive>]>
-                ...  sets which cpus belong to the CPUSET,
-                     exclusive is a flag (0|1) prohibiting any other cpuset from
-                     using those cpus
-    --cpusetmems <number[-number][:<exclusive>]>
-                ...  sets which memory pools belong to the CPUSET,
-                     exclusive is a flag (0|1) prohibiting any other cpuset from
-                     using those memory pools
-    --cpusetvirt
-                ...  virtualize cpuset (guest will see only CPUs defined in cpuset)
-                     Requires kernel patch from http://www.bullopensource.org/cpuset/
-    --initstyle <style>
-                ...  configures the initstyle (e.g. minit,sysv,plain)
-"
-
-function setup_setOption2
-{
-    case "$1" in
-       (--context)     SETUP_CONTEXT=$2;;
-       (--confdir)     SETUP_CONFDIR=$2;;
-       (--lockfile)    SETUP_LOCKFILE=$2;;
-       (--hostname)    SETUP_HOSTNAME=$2;;
-       (--netdev)      SETUP_NETDEV=$2;;
-       (--netmask)     SETUP_NETMASK=$2;;
-       (--netprefix)   SETUP_NETPREFIX=$2;;
-       (--netbcast)    SETUP_NETBCAST=$2;;
-       (--interface)   SETUP_INTERFACES=( "${SETUP_INTERFACES[@]}" "$2" );;
-       (--initstyle)   SETUP_INITSTYLE=$2;;
-       (--cpuset)      SETUP_CPUSET=$2;;
-       (--cpusetcpus)  old_IFS=$IFS
-                       IFS=:
-                       set -- $2
-                       SETUP_CPUSETCPUS=$1
-                       SETUP_CPUSETCPUSEXCL=$2
-                       IFS=$old_IFS
-                       ;;
-       (--cpusetmems)  old_IFS=$IFS
-                       IFS=:
-                       set -- $2
-                       SETUP_CPUSETMEMS=$1
-                       SETUP_CPUSETMEMSEXCL=$2
-                       IFS=$old_IFS
-                       ;;
-       (--cpusetvirt)  SETUP_CPUSETVIRT=1;;
-       (--flags)       old_IFS=$IFS
-                       IFS=,
-                       set -- $2
-                       SETUP_FLAGS=( "${SETUP_FLAGS[@]}" "$@" )
-                       IFS=$old_IFS
-                       ;;
-       (*)             return 1;;
-    esac
-
-    return 0
-}
-
-function _setup_writeSingleOption
-{
-    test -z "$1" || echo "$1" >"$2"
-}
-
-function _setup_writeInterface
-{
-    local vdir=$1
-    local idx=$2
-    local tmp=$3
-
-    local name=${tmp%%=*}
-    test "$name" != "$tmp" || name=
-
-    tmp=${tmp##${name}=}
-    local dev=${tmp%%:*}
-    local nodev=
-    test "$dev" != "$tmp"  || dev=
-
-    tmp=${tmp##${dev}:}
-    test "$dev" != "nodev" || {
-       dev=
-       nodev=1
-    }
-    local mask=${tmp##*/}
-    test "$mask" != "$tmp"  || mask=
-
-    local ip=${tmp%%/${mask}}
-
-    local prefix=
-    test "${mask%%.*}" != "$mask" || {
-       prefix=$mask
-       mask=
-    }
-
-    d=$vdir/interfaces/$idx
-    mkdir "$d"
-    
-    _setup_writeSingleOption "$name"   $d/name
-    _setup_writeSingleOption "$dev"    $d/dev
-    _setup_writeSingleOption "$ip"     $d/ip
-    _setup_writeSingleOption "$mask"   $d/mask
-    _setup_writeSingleOption "$prefix" $d/prefix
-
-    test -n "$dev" -o -n "$SETUP_NETDEV" || {
-       test -n "$nodev" || \
-           echo $"No device specified for interface '$idx'; setting 'nodev'" >&2
-       $_TOUCH $d/nodev
-    }
-}
-
-function setup_setDefaults
-{
-    : ${SETUP_CONFDIR:=$__CONFDIR/$1}
-    : ${SETUP_LOCKFILE:=$__RUNDIR/$1}
-    findFile SETUP_FSTAB "$__CONFDIR"/.defaults/fstab "$__PKGLIBDEFAULTDIR"/fstab
-}
-
-function _setup_generateContext
-{
-    if test -z "$SETUP_CONTEXT" && test ! -e "$__CONFDIR/.defaults/context.dynamic"; then
-       if test -e "$__CONFDIR/.defaults/context.next"; then
-           SETUP_CONTEXT=`$_CAT "$__CONFDIR/.defaults/context.next"`
-       else
-           SETUP_CONTEXT=`$_CAT "$__PKGLIBDEFAULTDIR/context.start"`
-       fi
-       expr "$SETUP_CONTEXT" + 1 > "$__CONFDIR/.defaults/context.next"
-    fi
-}
-
-function setup_writeOption
-{
-    local name=$1
-    local cfgdir=${SETUP_CONFDIR:?}
-    local i
-
-    mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts "$cfgdir"/cpuset
-
-    _setup_generateContext
-
-    _setup_writeSingleOption "$name"            "$cfgdir"/name
-    _setup_writeSingleOption "$SETUP_CONTEXT"   "$cfgdir"/context
-    _setup_writeSingleOption "$SETUP_HOSTNAME"  "$cfgdir"/uts/nodename
-    _setup_writeSingleOption "$SETUP_NETDEV"    "$cfgdir"/interfaces/dev
-    _setup_writeSingleOption "$SETUP_NETMASK"   "$cfgdir"/interfaces/mask
-    _setup_writeSingleOption "$SETUP_NETPREFIX" "$cfgdir"/interfaces/prefix
-    _setup_writeSingleOption "$SETUP_NETBCAST"  "$cfgdir"/interfaces/bcast
-    _setup_writeSingleOption "$SETUP_INITSTYLE" "$cfgdir"/apps/init/style
-    _setup_writeSingleOption "$SETUP_CPUSET"    "$cfgdir"/cpuset/name
-    _setup_writeSingleOption "$SETUP_CPUSETCPUS"     "$cfgdir"/cpuset/cpus
-    _setup_writeSingleOption "$SETUP_CPUSETCPUSEXCL" "$cfgdir"/cpuset/cpus_exclusive
-    _setup_writeSingleOption "$SETUP_CPUSETMEMS"     "$cfgdir"/cpuset/mems
-    _setup_writeSingleOption "$SETUP_CPUSETMEMSEXCL" "$cfgdir"/cpuset/mem_exclusive
-    _setup_writeSingleOption "$SETUP_CPUSETVIRT"     "$cfgdir"/cpuset/virtualized
-
-    local idx=0
-    for i in "${SETUP_INTERFACES[@]}"; do
-       _setup_writeInterface "$cfgdir" $idx "$i"
-       let ++idx
-    done
-
-    test -z "$SETUP_FLAGS" || for i in "${SETUP_FLAGS[@]}"; do
-       echo "$i"
-    done >"$cfgdir"/flags
-
-    ln -s "$SETUP_LOCKFILE"   "$cfgdir"/run
-}
-
-function setup_writeInitialFstab
-{
-    cat "${SETUP_FSTAB:?}" >"${SETUP_CONFDIR:?}"/fstab
-}
-
-function setup_test
-{
-    SETUP_INTERFACES=()
-
-    setup_setOption2 --interface foo0=eth0:1.2.3.4/1
-    setup_setOption2 --interface foo1=eth0:1.2.3.4/255.255.248.0
-    setup_setOption2 --interface foo2=eth0:1.2.3.4
-    setup_setOption2 --interface foo3=1.2.3.4
-    setup_setOption2 --interface foo4=1.2.3.4/1
-    setup_setOption2 --interface eth0:1.2.3.4
-    setup_setOption2 --interface eth0:1.2.3.4/1
-    setup_setOption2 --interface 1.2.3.4
-    setup_setOption2 --interface 1.2.3.4/1
-
-    setup_writeOption xx
-}