ready for tagging
[util-vserver.git] / scripts / vserver.convert
1 #!/bin/bash
2 #
3 # $Id$
4 # Copyright (C) 2007 The Trustees of Princeton University
5
6
7 : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
8 test -e "$UTIL_VSERVER_VARS" || {
9     echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
10     exit 1
11 }
12 . "$UTIL_VSERVER_VARS"
13
14 if test "$#" -ne 1; then
15     echo $"Usage: $0 <guest>" >&2
16     exit 1
17 fi
18
19 NAME="$1"
20 if ! test -r "$__CONFDIR/$NAME.conf" -a -d "$__DEFAULT_VSERVERDIR/$NAME"; then
21     echo $"$NAME does not exist." >&2
22     exit 1
23 fi
24
25 . "$__CONFDIR/$NAME.conf"
26
27 set -e
28
29 # build configuration directory
30 vuseradd "$NAME"
31
32 # copy old settings
33 function copy()
34 {
35     test -z "$1" && return 0
36     echo "$1" > "$__CONFDIR/$NAME/$2"
37 }
38
39 copy "$VS_WHITELISTED"  whitelisted
40 copy "$VS_DISK_MAX"     dlimits/0/space_total
41 if test -n "$CPUSHARE" -a -z "$CPULIMIT"; then
42     CPULIMIT="$CPUSHARE"
43 fi
44
45 copy "$CPULIMIT"        sched/fill-rate2
46 if test "$CPUGUARANTEED" -eq 1; then
47     copy "$CPULIMIT"    sched/fill-rate
48 fi
49
50 copy "$TASKLIMIT"       rlimits/nproc.hard
51 copy "$MEMLIMIT"        rlimits/rss.hard
52 for l in CPU RSS NPROC NOFILE MEMLOCK AS LOCKS SIGPENDING MSGQUEUE NSOCK OPENFD ANON SHMEM; do
53     for i in HARD SOFT MINIMUM; do
54         eval copy \"\$VS_${l}_${i}\" \"rlimits/`echo "${l}.${i}" | tr [A-Z] [a-z] | sed 's/minimum$/min/'`\"
55     done
56 done
57
58 copy "$S_CAPS"          bcapabilities
59
60 exit 0