diff options
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | src/lib/Server/Component.py | 10 | ||||
-rwxr-xr-x | src/sbin/bcfg2-server | 6 |
3 files changed, 15 insertions, 3 deletions
diff --git a/debian/control b/debian/control index 723334d7c..b0fa87cb7 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: bcfg2 Section: admin Priority: optional Maintainer: Narayan Desai <desai@mcs.anl.gov> -Build-Depends: debhelper (>= 4.0.0), python-dev +Build-Depends: debhelper (>= 4.0.0) Standards-Version: 3.6.1.1 Package: bcfg2 diff --git a/src/lib/Server/Component.py b/src/lib/Server/Component.py index 3d1ffd1e7..73f28446e 100644 --- a/src/lib/Server/Component.py +++ b/src/lib/Server/Component.py @@ -8,6 +8,10 @@ import Bcfg2.Client.Proxy as Proxy log = logging.getLogger('Component') +class ComponentInitError(Exception): + '''Raised in case of component initialization failure''' + pass + class CobaltXMLRPCRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): '''CobaltXMLRPCRequestHandler takes care of ssl xmlrpc requests''' def finish(self): @@ -96,7 +100,11 @@ class Component(SSLServer, self.password = self.cfile.get('communication', 'password') - SSLServer.__init__(self, location, keyfile, CobaltXMLRPCRequestHandler) + try: + SSLServer.__init__(self, location, keyfile, CobaltXMLRPCRequestHandler) + except: + self.logger.error("Failed to load ssl key %s" % (keyfile)) + raise ComponentInitError SimpleXMLRPCServer.SimpleXMLRPCDispatcher.__init__(self) self.logRequests = 0 self.port = self.socket.getsockname()[1] diff --git a/src/sbin/bcfg2-server b/src/sbin/bcfg2-server index 8e698e5ac..2b0d71d55 100755 --- a/src/sbin/bcfg2-server +++ b/src/sbin/bcfg2-server @@ -83,7 +83,11 @@ class Bcfg2Serv(Bcfg2.Server.Component.Component): request_queue_size = 15 def __init__(self, setup): - Bcfg2.Server.Component.Component.__init__(self, setup) + try: + Bcfg2.Server.Component.Component.__init__(self, setup) + except Bcfg2.Server.Component.ComponentInitError: + self.shut = True + return self.shut = False # set shutdown handlers for sigint and sigterm signal.signal(signal.SIGINT, self.start_shutdown) |