From 87c2bf31e1f2992a1733f5ce368e7336aa782663 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Thu, 16 Sep 2010 15:27:00 +0000 Subject: DebInit: implement support for dependency-based boot in Squeeze and beyond (patch from https://www.google.com/accounts/o8/id?id=AItOawlG5aiZZ6D7CrCtcInFhXmj7TC9AOKTyb8) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@6060 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Client/Tools/DebInit.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/Client/Tools/DebInit.py b/src/lib/Client/Tools/DebInit.py index 9df8bb127..0185f420c 100644 --- a/src/lib/Client/Tools/DebInit.py +++ b/src/lib/Client/Tools/DebInit.py @@ -4,6 +4,13 @@ __revision__ = '$Revision$' import glob, os, re import Bcfg2.Client.Tools + +# Debian squeeze and beyond uses a dependecy based boot sequence +DEBIAN_OLD_STYLE_BOOT_SEQUENCE = ( + 'etch', '4.0', + 'lenny', '5.0', '5.0.1', '5.0.2', '5.0.3', '5.0.4', '5.0.4', '5.0.5', + ) + class DebInit(Bcfg2.Client.Tools.SvcTool): """Debian Service Support for Bcfg2.""" name = 'DebInit' @@ -17,9 +24,18 @@ class DebInit(Bcfg2.Client.Tools.SvcTool): """Verify Service status for entry.""" rawfiles = glob.glob("/etc/rc*.d/[SK]*%s" % (entry.get('name'))) files = [] + + try: + deb_version = open('/etc/debian_version', 'r').read().split('/', 1)[0] + except IOError: + deb_version = 'unknown' + if entry.get('sequence'): - start_sequence = int(entry.get('sequence')) - kill_sequence = 100 - start_sequence + if (deb_version in DEBIAN_OLD_STYLE_BOOT_SEQUENCE): + start_sequence = int(entry.get('sequence')) + kill_sequence = 100 - start_sequence + else: + self.logger.warning("Your debian version boot sequence is dependency based \"sequence\" attribute wil be ignored.") else: start_sequence = None -- cgit v1.2.3-1-g7c22