Magellan Linux

Annotation of /trunk/vzctl/patches/vzctl-3.0.18-magellan-2.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 277 - (hide annotations) (download)
Sat Jul 21 23:31:24 2007 UTC (16 years, 10 months ago) by niro
File size: 26547 byte(s)
-fixed default runlevels

1 niro 277 diff -Naur vzctl-3.0.18/etc/dists/magellan.conf vzctl-3.0.18-magellan/etc/dists/magellan.conf
2     --- vzctl-3.0.18/etc/dists/magellan.conf 1970-01-01 01:00:00.000000000 +0100
3     +++ vzctl-3.0.18-magellan/etc/dists/magellan.conf 2007-07-22 01:29:50.000000000 +0200
4     @@ -0,0 +1,27 @@
5     +# Copyright (C) 2000-2007 SWsoft. All rights reserved.
6     +#
7     +# This program is free software; you can redistribute it and/or modify
8     +# it under the terms of the GNU General Public License as published by
9     +# the Free Software Foundation; either version 2 of the License, or
10     +# (at your option) any later version.
11     +#
12     +# This program is distributed in the hope that it will be useful,
13     +# but WITHOUT ANY WARRANTY; without even the implied warranty of
14     +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     +# GNU General Public License for more details.
16     +#
17     +# You should have received a copy of the GNU General Public License
18     +# along with this program; if not, write to the Free Software
19     +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20     +#
21     +# This configuration file is meant to be used with
22     +# the Magellan distribution kit.
23     +#
24     +
25     +ADD_IP=magellan-add_ip.sh
26     +DEL_IP=magellan-del_ip.sh
27     +SET_HOSTNAME=magellan-set_hostname.sh
28     +SET_DNS=set_dns.sh
29     +SET_USERPASS=set_userpass.sh
30     +SET_UGID_QUOTA=magellan-set_ugid_quota.sh
31     +POST_CREATE=postcreate.sh
32     diff -Naur vzctl-3.0.18/etc/dists/Makefile.am vzctl-3.0.18-magellan/etc/dists/Makefile.am
33     --- vzctl-3.0.18/etc/dists/Makefile.am 2007-07-06 09:46:25.000000000 +0200
34     +++ vzctl-3.0.18-magellan/etc/dists/Makefile.am 2007-07-22 01:29:50.000000000 +0200
35     @@ -69,6 +69,9 @@
36     gentoo:
37     $(INSTALL_DATA) $(srcdir)/gentoo.conf $(DESTDIR)$(distconfdir)/gentoo.conf
38    
39     +magellan:
40     + $(INSTALL_DATA) $(srcdir)/magellan.conf $(DESTDIR)$(distconfdir)/magellan.conf
41     +
42     mandrake:
43     $(INSTALL_DATA) $(srcdir)/mandrake.conf $(DESTDIR)$(distconfdir)/mandrake.conf
44    
45     @@ -141,6 +144,7 @@
46     debian \
47     fc \
48     gentoo \
49     + magellan \
50     mandrake \
51     redhat \
52     rhel \
53     diff -Naur vzctl-3.0.18/etc/dists/Makefile.in vzctl-3.0.18-magellan/etc/dists/Makefile.in
54     --- vzctl-3.0.18/etc/dists/Makefile.in 2007-07-06 09:46:34.000000000 +0200
55     +++ vzctl-3.0.18-magellan/etc/dists/Makefile.in 2007-07-22 01:29:50.000000000 +0200
56     @@ -477,6 +477,9 @@
57     gentoo:
58     $(INSTALL_DATA) $(srcdir)/gentoo.conf $(DESTDIR)$(distconfdir)/gentoo.conf
59    
60     +magellan:
61     + $(INSTALL_DATA) $(srcdir)/magellan.conf $(DESTDIR)$(distconfdir)/magellan.conf
62     +
63     mandrake:
64     $(INSTALL_DATA) $(srcdir)/mandrake.conf $(DESTDIR)$(distconfdir)/mandrake.conf
65    
66     @@ -549,6 +552,7 @@
67     debian \
68     fc \
69     gentoo \
70     + magellan \
71     mandrake \
72     redhat \
73     rhel \
74     diff -Naur vzctl-3.0.18/etc/dists/scripts/magellan-add_ip.sh vzctl-3.0.18-magellan/etc/dists/scripts/magellan-add_ip.sh
75     --- vzctl-3.0.18/etc/dists/scripts/magellan-add_ip.sh 1970-01-01 01:00:00.000000000 +0100
76     +++ vzctl-3.0.18-magellan/etc/dists/scripts/magellan-add_ip.sh 2007-07-22 01:29:50.000000000 +0200
77     @@ -0,0 +1,122 @@
78     +#!/bin/bash
79     +# Copyright (C) 2000-2007 SWsoft. All rights reserved.
80     +#
81     +# This program is free software; you can redistribute it and/or modify
82     +# it under the terms of the GNU General Public License as published by
83     +# the Free Software Foundation; either version 2 of the License, or
84     +# (at your option) any later version.
85     +#
86     +# This program is distributed in the hope that it will be useful,
87     +# but WITHOUT ANY WARRANTY; without even the implied warranty of
88     +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
89     +# GNU General Public License for more details.
90     +#
91     +# You should have received a copy of the GNU General Public License
92     +# along with this program; if not, write to the Free Software
93     +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
94     +#
95     +#
96     +# This script configure IP alias(es) inside Magellan like VE.
97     +#
98     +# Parameters are passed in environment variables.
99     +# Required parameters:
100     +# IP_ADDR - IP address(es) to add
101     +# (several addresses should be divided by space)
102     +# Optional parameters:
103     +# VE_STATE - state of VE; could be one of:
104     +# starting | stopping | running | stopped
105     +# IPDELALL - delete all old interfaces
106     +#
107     +
108     +VENET_DEV=venet0
109     +IFCFG_DIR=/etc/conf.d
110     +IFCFG=${IFCFG_DIR}/net.${VENET_DEV}
111     +ROUTESCFG=${IFCFG_DIR}/net.routes
112     +SCRIPT=/etc/runlevels/default/net.${VENET_DEV}
113     +HOSTFILE=/etc/hosts
114     +
115     +function setup_network()
116     +{
117     + cat > ${IFCFG} << EOF
118     +ONBOOT=yes
119     +NETWORKING=static
120     +IP=127.0.0.1
121     +NETMASK=255.255.255.255
122     +BROADCAST=0.0.0.0
123     +EOF
124     +
125     + # setup routes
126     + echo "-net ${FAKEGATEWAY} netmask 255.255.255.255 dev ${VENET_DEV}" > ${ROUTESCFG}
127     + echo "default gw ${FAKEGATEWAY}" >> ${ROUTESCFG}
128     +
129     + # Set up /etc/hosts
130     + if [ ! -f ${HOSTFILE} ]; then
131     + echo "127.0.0.1 localhost.localdomain localhost" > $HOSTFILE
132     + fi
133     +}
134     +
135     +function get_all_aliasid()
136     +{
137     + IFNUM=-1
138     + IFNUMLIST=$(for i in $(find ${IFCFG_DIR} -name net.${VENET_DEV}:*); do echo $i | sed "s/.*${VENET_DEV}://"; done)
139     +}
140     +
141     +function get_free_aliasid()
142     +{
143     + local found=
144     +
145     + [ -z "${IFNUMLIST}" ] && get_all_aliasid
146     + while test -z ${found}; do
147     + let IFNUM=IFNUM+1
148     + echo "${IFNUMLIST}" | grep -q -E "${IFNUM}" 2>/dev/null || found=1
149     + done
150     +}
151     +
152     +function create_config()
153     +{
154     + local ip=$1
155     + local ifnum=$2
156     +
157     + echo -e "# auto-generated configuration for ${VENET_DEV}:${ifnum}
158     +ONBOOT=yes
159     +NETWORKING=static
160     +IP=${ip}
161     +NETMASK=255.255.255.255
162     +BROADCAST=0.0.0.0
163     +" > ${IFCFG}:${ifnum}
164     +}
165     +
166     +
167     +function add_ip()
168     +{
169     + local ip
170     + local new_ips
171     +
172     + # In case we are starting VE
173     + if [ "x${VE_STATE}" = "xstarting" ]; then
174     + setup_network
175     + fi
176     +
177     + if [ "x${IPDELALL}" = "xyes" ]; then
178     + rm -f ${IFCFG}
179     + rm -f ${IFCFG}:[0-9]*
180     + fi
181     +
182     + for ip in ${IP_ADDR}; do
183     + found=
184     + if grep -e "\\<${ip}\\>" >/dev/null 2>&1 ${IFCFG}:*; then
185     + continue
186     + fi
187     + get_free_aliasid
188     + create_config ${ip} ${IFNUM}
189     + done
190     +
191     + if [ "x${VE_STATE}" = "xrunning" ]; then
192     + # synchronyze config files & interfaces
193     + /etc/init.d/network restart 2>/dev/null 1>/dev/null
194     + fi
195     +}
196     +
197     +add_ip
198     +exit 0
199     +# end of script
200     diff -Naur vzctl-3.0.18/etc/dists/scripts/magellan-del_ip.sh vzctl-3.0.18-magellan/etc/dists/scripts/magellan-del_ip.sh
201     --- vzctl-3.0.18/etc/dists/scripts/magellan-del_ip.sh 1970-01-01 01:00:00.000000000 +0100
202     +++ vzctl-3.0.18-magellan/etc/dists/scripts/magellan-del_ip.sh 2007-07-22 01:29:50.000000000 +0200
203     @@ -0,0 +1,53 @@
204     +#!/bin/bash
205     +# Copyright (C) 2000-2007 SWsoft. All rights reserved.
206     +#
207     +# This program is free software; you can redistribute it and/or modify
208     +# it under the terms of the GNU General Public License as published by
209     +# the Free Software Foundation; either version 2 of the License, or
210     +# (at your option) any later version.
211     +#
212     +# This program is distributed in the hope that it will be useful,
213     +# but WITHOUT ANY WARRANTY; without even the implied warranty of
214     +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
215     +# GNU General Public License for more details.
216     +#
217     +# You should have received a copy of the GNU General Public License
218     +# along with this program; if not, write to the Free Software
219     +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
220     +#
221     +#
222     +# This script deletes IP alias(es) inside VE for Magellan like distros.
223     +# For usage info see ve-alias_del(5) man page.
224     +#
225     +# Parameters are passed in environment variables.
226     +# Required parameters:
227     +# IP_ADDR - IPs to delete, several addresses should be divided by space
228     +# Optional parameters:
229     +# VE_STATE - state of VE; could be one of:
230     +# starting | stopping | running | stopped
231     +
232     +VENET_DEV=venet0
233     +IFCFG_DIR=/etc/conf.d
234     +IFCFG=${IFCFG_DIR}/net.${VENET_DEV}
235     +
236     +function del_ip()
237     +{
238     + local found=
239     + local ip ifname
240     +
241     + for ip in ${IP_ADDR}; do
242     + ifname=$(grep -l -e "\\<${ip}\\>" ${IFCFG}:* | sed "s:${IFCFG_DIR}:net.::")
243     + if [ -n "${ifname}" ]; then
244     + ifconfig ${ifname} down
245     + rm -f ${IFCFG_DIR}/net.${ifname}
246     + found=true
247     + fi
248     + done
249     + if [ -n "${found}" ]; then
250     + /etc/init.d/network restart 2>/dev/null 1>/dev/null
251     + fi
252     +}
253     +
254     +del_ip
255     +exit 0
256     +# end of script
257     diff -Naur vzctl-3.0.18/etc/dists/scripts/magellan-set_hostname.sh vzctl-3.0.18-magellan/etc/dists/scripts/magellan-set_hostname.sh
258     --- vzctl-3.0.18/etc/dists/scripts/magellan-set_hostname.sh 1970-01-01 01:00:00.000000000 +0100
259     +++ vzctl-3.0.18-magellan/etc/dists/scripts/magellan-set_hostname.sh 2007-07-22 01:29:50.000000000 +0200
260     @@ -0,0 +1,60 @@
261     +#!/bin/bash
262     +# Copyright (C) 2000-2007 SWsoft. All rights reserved.
263     +#
264     +# This program is free software; you can redistribute it and/or modify
265     +# it under the terms of the GNU General Public License as published by
266     +# the Free Software Foundation; either version 2 of the License, or
267     +# (at your option) any later version.
268     +#
269     +# This program is distributed in the hope that it will be useful,
270     +# but WITHOUT ANY WARRANTY; without even the implied warranty of
271     +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
272     +# GNU General Public License for more details.
273     +#
274     +# You should have received a copy of the GNU General Public License
275     +# along with this program; if not, write to the Free Software
276     +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
277     +#
278     +#
279     +# This script sets hostname inside VE for Magellan like distros
280     +# For usage info see vz-veconfig(5) man page.
281     +#
282     +# Some parameters are passed in environment variables.
283     +# Required parameters:
284     +# Optional parameters:
285     +# HOSTNM
286     +# Sets host name for this VE. Modifies /etc/hosts and
287     +# /etc/sysconfig/network (in RedHat) or /etc/rc.config (in SuSE)
288     +
289     +function set_host()
290     +{
291     + local cfgfile="$1"
292     + local var=$2
293     + local val=$3
294     + local host=
295     +
296     + [ -z "${val}" ] && return 0
297     + if grep -q -E "[[:space:]]${val}" ${cfgfile} 2>/dev/null; then
298     + return;
299     + fi
300     + if echo "${val}" | grep "\." >/dev/null 2>&1; then
301     + host=${val%%.*}
302     + fi
303     + host=" ${val} ${host}"
304     + put_param2 "${cfgfile}" "${var}" "${host} localhost localhost.localdomain"
305     +}
306     +
307     +function set_hostname()
308     +{
309     + local cfgfile=$1
310     + local hostname=$2
311     +
312     + [ -z "${hostname}" ] && return 0
313     + echo "${hostname}" > ${cfgfile}
314     + hostname ${hostname}
315     +}
316     +
317     +set_host /etc/hosts "127.0.0.1" "${HOSTNM}"
318     +set_hostname /etc/hostname "${HOSTNM}"
319     +
320     +exit 0
321     diff -Naur vzctl-3.0.18/etc/dists/scripts/magellan-set_ugid_quota.sh vzctl-3.0.18-magellan/etc/dists/scripts/magellan-set_ugid_quota.sh
322     --- vzctl-3.0.18/etc/dists/scripts/magellan-set_ugid_quota.sh 1970-01-01 01:00:00.000000000 +0100
323     +++ vzctl-3.0.18-magellan/etc/dists/scripts/magellan-set_ugid_quota.sh 2007-07-22 01:29:50.000000000 +0200
324     @@ -0,0 +1,72 @@
325     +#!/bin/bash
326     +# Copyright (C) 2000-2007 SWsoft. All rights reserved.
327     +#
328     +# This program is free software; you can redistribute it and/or modify
329     +# it under the terms of the GNU General Public License as published by
330     +# the Free Software Foundation; either version 2 of the License, or
331     +# (at your option) any later version.
332     +#
333     +# This program is distributed in the hope that it will be useful,
334     +# but WITHOUT ANY WARRANTY; without even the implied warranty of
335     +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
336     +# GNU General Public License for more details.
337     +#
338     +# You should have received a copy of the GNU General Public License
339     +# along with this program; if not, write to the Free Software
340     +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
341     +#
342     +#
343     +# This script configures quota startup script inside VE for Magellan like distros
344     +#
345     +# Parameters are passed in environment variables.
346     +# Required parameters:
347     +# MINOR - root device minor number
348     +# MAJOR - root device major number
349     +SCRIPTANAME='/etc/rc.d/init.d/vzquota'
350     +RCDIRS="/etc/rc.d"
351     +
352     +if [ -z "$MAJOR" ]; then
353     + rm -f ${SCRIPTANAME} > /dev/null 2>&1
354     + rm -f /etc/mtab > /dev/null 2>&1
355     + ln -sf /proc/mounts /etc/mtab
356     + exit 0
357     +fi
358     +echo -e '#!/bin/sh
359     +start() {
360     + [ -e "/dev/'${DEVFS}'" ] || mknod /dev/'${DEVFS}' b '$MAJOR' '$MINOR'
361     + rm -f /etc/mtab >/dev/null 2>&1
362     + echo "/dev/'${DEVFS}' / reiserfs rw,usrquota,grpquota 0 0" > /etc/mtab
363     + mnt=`grep -v " / " /proc/mounts`
364     + if [ $? == 0 ]; then
365     + echo "$mnt" >> /etc/mtab
366     + fi
367     + quotaon -aug
368     +}
369     +case "$1" in
370     + start)
371     + start
372     + ;;
373     + *)
374     + exit
375     +esac ' > ${SCRIPTANAME} || {
376     + echo "Unable to create ${SCRIPTNAME}"
377     + exit 1
378     +}
379     +chmod 755 ${SCRIPTANAME}
380     +
381     +RC=
382     +for RC in ${RCDIRS}; do
383     + [ -d ${RC}/rc3.d ] && break
384     +done
385     +
386     +if [ -z "${RC}" ]; then
387     + echo "Unable to find runlevel directories"
388     + exit 1
389     +fi
390     +
391     +for dir in `ls -d ${RC}/rc[0-6].d`; do
392     + ln -sf ${SCRIPTANAME} ${dir}/S10vzquota
393     +done
394     +
395     +exit 0
396     +
397     diff -Naur vzctl-3.0.18/etc/init.d/Makefile.am vzctl-3.0.18-magellan/etc/init.d/Makefile.am
398     --- vzctl-3.0.18/etc/init.d/Makefile.am 2007-07-06 09:46:25.000000000 +0200
399     +++ vzctl-3.0.18-magellan/etc/init.d/Makefile.am 2007-07-22 01:29:50.000000000 +0200
400     @@ -15,7 +15,7 @@
401     # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
402     #
403    
404     -INITSCRIPTS = vz-redhat vz-gentoo
405     +INITSCRIPTS = vz-redhat vz-gentoo vz-magellan
406    
407     EXTRA_DIST = $(INITSCRIPTS:%=%.in)
408    
409     @@ -34,3 +34,7 @@
410     install-gentoo: vz-gentoo
411     $(mkinstalldirs) $(DESTDIR)$(initddir)
412     $(INSTALL_SCRIPT) vz-gentoo $(DESTDIR)$(initddir)/vz
413     +
414     +install-gentoo: vz-magellan
415     + $(mkinstalldirs) $(DESTDIR)$(initddir)
416     + $(INSTALL_SCRIPT) vz-magellan $(DESTDIR)$(initddir)/vz
417     diff -Naur vzctl-3.0.18/etc/init.d/Makefile.in vzctl-3.0.18-magellan/etc/init.d/Makefile.in
418     --- vzctl-3.0.18/etc/init.d/Makefile.in 2007-07-06 09:46:34.000000000 +0200
419     +++ vzctl-3.0.18-magellan/etc/init.d/Makefile.in 2007-07-22 01:29:50.000000000 +0200
420     @@ -204,7 +204,7 @@
421     target_cpu = @target_cpu@
422     target_os = @target_os@
423     target_vendor = @target_vendor@
424     -INITSCRIPTS = vz-redhat vz-gentoo
425     +INITSCRIPTS = vz-redhat vz-gentoo vz-magellan
426     EXTRA_DIST = $(INITSCRIPTS:%=%.in)
427     CLEANFILES = $(INITSCRIPTS)
428     @ENABLE_BASHCOMP_TRUE@bashcdir = $(sysconfdir)/bash_completion.d
429     @@ -407,6 +407,11 @@
430     install-gentoo: vz-gentoo
431     $(mkinstalldirs) $(DESTDIR)$(initddir)
432     $(INSTALL_SCRIPT) vz-gentoo $(DESTDIR)$(initddir)/vz
433     +
434     +install-magellan: vz-magellan
435     + $(mkinstalldirs) $(DESTDIR)$(initddir)
436     + $(INSTALL_SCRIPT) vz-magellan $(DESTDIR)$(initddir)/vz
437     +
438     # Tell versions [3.59,3.63) of GNU make to not export all variables.
439     # Otherwise a system limit (for SysV at least) may be exceeded.
440     .NOEXPORT:
441     diff -Naur vzctl-3.0.18/etc/init.d/vz-magellan.in vzctl-3.0.18-magellan/etc/init.d/vz-magellan.in
442     --- vzctl-3.0.18/etc/init.d/vz-magellan.in 1970-01-01 01:00:00.000000000 +0100
443     +++ vzctl-3.0.18-magellan/etc/init.d/vz-magellan.in 2007-07-22 01:30:04.000000000 +0200
444     @@ -0,0 +1,405 @@
445     +#!/bin/bash
446     +# $Header: /root/magellan-cvs/src/vzctl/patches/vzctl-3.0.18-magellan-2.patch,v 1.1 2007-07-21 23:31:24 niro Exp $
447     +
448     +#%rlevels: 3:s 4:s 5:s 0:k 1:k 2:k 6:k
449     +#%start: 96
450     +#%stop: 30
451     +
452     +#deps
453     +#%needs:
454     +#%before:
455     +#%after:
456     +
457     +source /etc/sysconfig/rc
458     +source $rc_functions
459     +
460     +check_config()
461     +{
462     + source /etc/vz/vz.conf
463     +
464     + # if we don't want openvz running, say so
465     + [ "${VIRTUOZZO}" = "yes" ] || return 1
466     +
467     + # set default values
468     + : ${VZCTL:=@SBINDIR@/vzctl}
469     + : ${VZQUOTA:=@SBINDIR@/vzquota}
470     + : ${VZVEINFO:=/proc/vz/veinfo}
471     + : ${VESTAT:=/proc/vz/vestat}
472     + : ${VPSCONFDIR:=@VPSCONFDIR@}
473     + : ${VZDEV:=venet0}
474     + : ${SRC_CRONSCRIPT_DIR:=@CRONDDIR@}
475     + : ${DST_CRONSCRIPT_DIR:=@DST_CRONDDIR@}
476     +
477     + if [ "${MODULES_DISABLED}" != "yes" ]
478     + then
479     + : ${PRELOAD_MODULES:="af_packet"}
480     + : ${MODULES:="vzmon vzdquota vzdev"}
481     + : ${MIGRATE_MODULES:="vzcpt vzrst"}
482     + : ${NET_MODULES="vznetdev vznet"}
483     +
484     + # check if you should load vzwdog module
485     + [ "${VZWDOG}" = "yes" ] && MODULES="${MODULES} vzwdog"
486     + fi
487     +
488     + # we need a working vzctl
489     + if [ ! -x "${VZCTL}" ]
490     + then
491     + ${FAILURE} "vzctl missing (${VZCTL})"
492     + return 1
493     + fi
494     +
495     + if [ -z "${VE0CPUUNITS}" ]
496     + then
497     + ${WARNING} "VE0CPUUNITS is not set in /etc/conf.d/vz; using default value of 1000"
498     + VE0CPUUNITS=1000
499     + fi
500     + return 0
501     +}
502     +
503     +# We used to install OpenVZ cron job when the vzctl package was
504     +# installed, irrespective of whether OpenVZ was actually being
505     +# run. Although the cron jobs didn't create any problems if someone
506     +# wasn't running OpenVZ some users complained about the cron log file
507     +# filling up, resource usage, and power consumption since systems
508     +# wouldn't really idle. It really only makes sense to run the OpenVZ
509     +# cron job if the vz service is turned on and not just merely
510     +# having the package installed. This init.d script is an obvious place
511     +# to install or remove the cron jobs based on the service
512     +# being enabled or not.
513     +setup_cron()
514     +{
515     + [ -z "${SRC_CRONSCRIPT_DIR}" ] && return
516     + [ -d "${SRC_CRONSCRIPT_DIR}" ] || return
517     + install -m644 -o root -g root ${SRC_CRONSCRIPT_DIR}/vz ${DST_CRONSCRIPT_DIR}
518     +}
519     +
520     +remove_cron()
521     +{
522     + [ -z "${SRC_CRONSCRIPT_DIR}" ] && return
523     + [ -d "${SRC_CRONSCRIPT_DIR}" ] || return
524     + cat > ${DST_CRONSCRIPT_DIR}/vz <<EOF
525     +# DO NOT EDIT THIS FILE!
526     +#
527     +# Contents of this file managed by /etc/init.d/vz script
528     +# Master copy is ${SRC_CRONSCRIPT_DIR}/vz.
529     +# Consult that file for documentation.
530     +EOF
531     +}
532     +
533     +setup_ve0()
534     +{
535     + local msg retval ve0conf="${VPSCONFDIR}/0.conf"
536     +
537     + msg=$(${VZCTL} set 0 --cpuunits ${VE0CPUUNITS} 2>&1)
538     + [ $? -ne 0 ] && ${WARNING} "vzctl set 0 --cpuunits ${VE0CPUUNITS} failed: ${msg}"
539     +
540     + test -f ${ve0conf} || return
541     + egrep -q '^ONBOOT=yes\|^ONBOOT=\"yes\"' ${ve0conf} || return
542     +
543     + echo -en ${COLOREDSTAR}"Configuring hardware node UB resources: "
544     + msg=$(${VZCTL} set 0 --reset_ub 2>&1)
545     + retval=$?
546     + echo "${msg}"
547     + evaluate_retval ${retval}
548     +}
549     +
550     +start_net()
551     +{
552     + local mod
553     +
554     + # we don't operate on a running interface
555     + if /sbin/ip addr list | grep -q "venet0:.*UP" 2>/dev/null
556     + then
557     + return 0
558     + fi
559     +
560     + # load necessary modules
561     + for mod in ${NET_MODULES}
562     + do
563     + /sbin/modprobe ${mod} 2>/dev/null
564     + done
565     +
566     + if [ ! -f ${VZVEINFO} ]
567     + then
568     + return 0
569     + fi
570     +
571     + # configure the device
572     + echo -e ${COLOREDSTAR}"Bringing up interface ${VZDEV}"
573     + /sbin/ip link set ${VZDEV} up
574     + evaluate_retval
575     +
576     + /sbin/ip addr add 0.0.0.0/0 dev ${VZDEV}
577     +
578     + echo -e ${COLOREDSTAR}"Configuring interface ${VZDEV}"
579     + /sbin/sysctl -q -w net.ipv4.conf.${VZDEV}.send_redirects=0
580     + evaluate_retval
581     +}
582     +
583     +stop_net()
584     +{
585     + local mod
586     +
587     + if /sbin/ip addr list | grep -q "venet0:.*UP" 2>/dev/null
588     + then
589     + echo -e ${COLOREDSTAR}"Bringing down interface ${VZDEV}"
590     + /sbin/ip link set ${VZDEV} down 2>/dev/null
591     + evaluate_retval
592     + fi
593     +
594     + # remove all modules we probably loaded on start_net
595     + for mod in ${NET_MODULES}
596     + do
597     + /sbin/modprobe -r ${mod} > /dev/null 2>&1
598     + done
599     +}
600     +
601     +start_ve()
602     +{
603     + local veid velist msg need_restart="" retval
604     +
605     + # get all VEs we should start on boot
606     + if ! cd ${VPSCONFDIR}
607     + then
608     + ${FAILURE} "Unable to cd to ${VPSCONFDIR}"
609     + return 1
610     + fi
611     + velist=$(grep -l '^ONBOOT=yes\|^ONBOOT=\"yes\"' [0-9]*.conf 2>/dev/null | sed -e 's/.conf//g' | sort -n)
612     + cd - >/dev/null
613     +
614     + /sbin/sysctl -q -w net.ipv4.route.src_check=0
615     +
616     + for veid in ${velist}
617     + do
618     + echo -en ${COLOREDSTAR}"Starting VE ${veid}"
619     + if [ "${VZFASTBOOT}" = "yes" -a "${DISK_QUOTA}" = "yes" ]
620     + then
621     + ${VZQUOTA} stat ${veid} >/dev/null 2>&1
622     + if [ $? -eq 6 ]
623     + then
624     + if ${VZQUOTA} show ${veid} 2>&1 | grep "vzquota : (warning) Quota is running" >/dev/null 2>&1
625     + then
626     + ${VZQUOTA} on ${veid} --nocheck >/dev/null 2>&1
627     + need_restart="${need_restart} ${veid}"
628     + fi
629     + fi
630     + fi
631     + msg=$(${VZCTL} start ${veid} 2>&1)
632     + retval=$?
633     + echo "${mesg}"
634     + evaluate_retval ${retval}
635     + done
636     +
637     + for veid in ${need_restart}
638     + do
639     + echo -en ${COLOREDSTAR}"Stopping VE ${veid}"
640     + msg=$(${VZCTL} stop ${veid})
641     + retval=$?
642     + echo "${mesg}"
643     + evaluate_retval ${retval}
644     +
645     + echo -e ${COLOREDSTAR}"Starting VE ${veid}"
646     + msg=$($VZCTL start ${veid} 2>&1)
647     + retval=$?
648     + echo "${mesg}"
649     + evaluate_retval ${retval}
650     + done
651     +
652     + # we're ok even if some VEs failed to start
653     + return 0
654     +}
655     +
656     +get_parallel()
657     +{
658     + [ -n "${PARALLEL}" ] && return
659     + PARALLEL=`awk '
660     +BEGIN { num=0; }
661     +$1 == "processor" { num++; }
662     +END { print num * 4; }' /proc/cpuinfo`
663     +}
664     +
665     +stop_ve()
666     +{
667     + local veid velist msg m mounts fail i iter pid pids quota retval
668     +
669     + if [ -f ${VESTAT} ]
670     + then
671     + get_parallel
672     + for ((i = 0; i <= 2; i++))
673     + do
674     + iter=0
675     + pids=
676     + velist=$(awk '$1 != "VEID" && $1 != "Version:" {print $1}' ${VESTAT})
677     + for veid in ${velist}
678     + do
679     + echo -e ${COLOREDSTAR}"Shutting down VE $veid"
680     + # Set fairsched parameters to maximum so
681     + # VE will stop fast
682     + ${VZCTL} set ${veid} --cpuunits 2000 --cpulimit 0 >/dev/null 2>&1
683     + ${VZCTL} --skiplock stop ${veid} >/dev/null 2>&1 &
684     + pids="${pids} $!"
685     + let iter++
686     + if [ ${iter} -gt ${PARALLEL} ]
687     + then
688     + for pid in ${pids}
689     + do
690     + wait ${pid}
691     + done
692     + pids=
693     + iter=0
694     + fi
695     + done
696     +
697     + for pid in ${pids}
698     + do
699     + wait ${pid}
700     + done
701     + done
702     + fi
703     +
704     + iter=0
705     + fail=1
706     +
707     + while [ ${iter} -lt 5 -a ${fail} -ne 0 ]
708     + do
709     + fail=0
710     + mounts=$(awk '{if ($3=="simfs") print $2}' /proc/mounts)
711     +
712     + for m in ${mounts}
713     + do
714     + echo -en ${COLOREDSTAR}"Unmounting VE area ${m}"
715     + msg=$(umount ${m} 2>&1)
716     + retval=$?
717     + echo "${mesg}"
718     + evaluate_retval ${retval}
719     + if [ $? -ne 0 ]
720     + then
721     + let fail++
722     + fuser -k -m ${m} > /dev/null 2>&1
723     + fi
724     + done
725     +
726     + let iter++
727     + done
728     +
729     + # turn quota off
730     + quota=$(awk -F: '/^[0-9]+:/{print $1}' /proc/vz/vzquota 2>/dev/null)
731     +
732     + for m in ${quota}
733     + do
734     + echo -e ${COLOREDSTAR}"Turning quota off for VE ${m}"
735     + msg=$(vzquota off ${m} 2>&1)
736     + retval=$?
737     + echo "${mesg}"
738     + evaluate_retval ${retval}
739     + done
740     +}
741     +
742     +status_ve()
743     +{
744     + local velist veid
745     +
746     + check_config
747     +
748     + if [ -f ${VESTAT} ]
749     + then
750     + velist=$(awk '$1 != "VEID" && $1 != "Version:" {print $1}' ${VESTAT})
751     + for veid in ${velist}
752     + do
753     + ${VZCTL} status ${veid}
754     + done
755     + fi
756     +}
757     +
758     +case "$1" in
759     + start)
760     + check_config || exit
761     +
762     + echo -e ${COLOREDSTAR}"Loading OpenVZ modules"
763     + for mod in ${PRELOAD_MODULES}
764     + do
765     + /sbin/modprobe -r ${mod} >/dev/null 2>&1
766     + /sbin/modprobe ${mod} >/dev/null 2>&1
767     + done
768     +
769     + for mod in ${MODULES}
770     + do
771     + /sbin/modprobe ${mod} >/dev/null 2>&1
772     + retval=$?
773     + if [ ${retval} -ne 0 ]
774     + then
775     + ${FAILURE} "failed to load module ${mod}"
776     + exit ${retval}
777     + fi
778     + done
779     +
780     + for mod in ${MIGRATE_MODULES}
781     + do
782     + /sbin/modprobe ${mod} >/dev/null 2>&1
783     + done
784     + evaluate_retval
785     +
786     + if [ ! -e /dev/vzctl ]
787     + then
788     + ${FAILURE} "Missing device node /dev/vzctl"
789     + echo
790     + echo "Please create the vzctl device node using the following command:"
791     + echo " /bin/mknod /dev/vzctl c 126 0"
792     + echo
793     + exit 1
794     + fi
795     +
796     + start_net
797     + setup_ve0
798     + setup_cron
799     + start_ve
800     +
801     + update_svcstatus $1
802     + splash svc_started "$(basename $0)" 0
803     + ;;
804     +
805     + stop)
806     + check_config || exit
807     +
808     + stop_ve
809     + remove_cron
810     + stop_net
811     +
812     + echo -e ${COLOREDSTAR}"Unloading OpenVZ modules"
813     + for mod in ${MIGRATE_MODULES}
814     + do
815     + /sbin/modprobe -r ${mod} > /dev/null 2>&1
816     + done
817     +
818     + for mod in ${MODULES}
819     + do
820     + /sbin/modprobe -r ${mod} > /dev/null 2>&1
821     + done
822     +
823     + for mod in ${PRELOAD_MODULES}
824     + do
825     + /sbin/modprobe -r ${mod} > /dev/null 2>&1
826     + done
827     + # Even if some modules failed to unload (say they were not loaded)
828     + # we return success for the service to be marked as stopped.
829     + print_status success
830     +
831     + update_svcstatus $1
832     + splash svc_stopped "$(basename $0)" 0
833     + ;;
834     +
835     + restart)
836     + $0 stop
837     + sleep 1
838     + $0 start
839     + ;;
840     +
841     + status)
842     + status_ve
843     + ;;
844     +
845     + *)
846     + echo "Usage: $0 {start|stop|restart|status}"
847     + exit 1
848     + ;;
849     +esac
850     diff -Naur vzctl-3.0.18/etc/Makefile.am vzctl-3.0.18-magellan/etc/Makefile.am
851     --- vzctl-3.0.18/etc/Makefile.am 2007-07-06 09:46:25.000000000 +0200
852     +++ vzctl-3.0.18-magellan/etc/Makefile.am 2007-07-22 01:29:50.000000000 +0200
853     @@ -48,3 +48,8 @@
854     $(MAKE) $(AM_MAKEFLAGS) -C init.d $@
855     $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/conf.d
856     $(LN_S) $(pkgconfdir)/vz.conf $(DESTDIR)$(sysconfdir)/conf.d/vz
857     +
858     +install-magellan:
859     + $(MAKE) $(AM_MAKEFLAGS) -C init.d $@
860     + $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/conf.d
861     + $(LN_S) $(pkgconfdir)/vz.conf $(DESTDIR)$(sysconfdir)/conf.d/vz
862     diff -Naur vzctl-3.0.18/etc/Makefile.in vzctl-3.0.18-magellan/etc/Makefile.in
863     --- vzctl-3.0.18/etc/Makefile.in 2007-07-06 09:46:33.000000000 +0200
864     +++ vzctl-3.0.18-magellan/etc/Makefile.in 2007-07-22 01:29:50.000000000 +0200
865     @@ -567,6 +567,12 @@
866     $(MAKE) $(AM_MAKEFLAGS) -C init.d $@
867     $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/conf.d
868     $(LN_S) $(pkgconfdir)/vz.conf $(DESTDIR)$(sysconfdir)/conf.d/vz
869     +
870     +install-magellan:
871     + $(MAKE) $(AM_MAKEFLAGS) -C init.d $@
872     + $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/conf.d
873     + $(LN_S) $(pkgconfdir)/vz.conf $(DESTDIR)$(sysconfdir)/conf.d/vz
874     +
875     # Tell versions [3.59,3.63) of GNU make to not export all variables.
876     # Otherwise a system limit (for SysV at least) may be exceeded.
877     .NOEXPORT:
878     diff -Naur vzctl-3.0.18/INSTALL vzctl-3.0.18-magellan/INSTALL
879     --- vzctl-3.0.18/INSTALL 2007-07-06 09:46:25.000000000 +0200
880     +++ vzctl-3.0.18-magellan/INSTALL 2007-07-22 01:29:50.000000000 +0200
881     @@ -15,7 +15,7 @@
882     # make install
883     # make install-<distro>
884    
885     -Here <distro> can be one of: redhat, suse, gentoo, debian.
886     +Here <distro> can be one of: redhat, suse, gentoo, magellan, debian.
887    
888    
889     == Complete instructions ==
890     @@ -78,6 +78,7 @@
891     To that effect, run one of the following:
892    
893     make install-gentoo # for Gentoo
894     + make install-magellan # for Magellan
895     make install-redhat # for Red Hat, CentOS, and Fedora
896     make install-suse # for openSUSE and SLES
897     make install-debian # for Debian and Ubuntu
898     diff -Naur vzctl-3.0.18/Makefile.am vzctl-3.0.18-magellan/Makefile.am
899     --- vzctl-3.0.18/Makefile.am 2007-07-06 09:46:25.000000000 +0200
900     +++ vzctl-3.0.18-magellan/Makefile.am 2007-07-22 01:29:50.000000000 +0200
901     @@ -44,6 +44,7 @@
902     DISTRO_TARGETS = \
903     install-redhat \
904     install-gentoo \
905     + install-magellan \
906     install-suse \
907     install-debian
908    
909     diff -Naur vzctl-3.0.18/Makefile.in vzctl-3.0.18-magellan/Makefile.in
910     --- vzctl-3.0.18/Makefile.in 2007-07-06 09:46:36.000000000 +0200
911     +++ vzctl-3.0.18-magellan/Makefile.in 2007-07-22 01:29:50.000000000 +0200
912     @@ -214,6 +214,7 @@
913     DISTRO_TARGETS = \
914     install-redhat \
915     install-gentoo \
916     + install-magellan \
917     install-suse \
918     install-debian
919