summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/BuiltinCore.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-25 16:55:12 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-25 16:55:12 -0400
commitbc636a8bbddde9dc1d09a6dab2f325c4190f871a (patch)
tree718b901e4a4645817a1a6a4e7aa847617a5a9aa6 /src/lib/Bcfg2/Server/BuiltinCore.py
parentf08ecec3ec2c8ff2baed5c9fa613a61e5c3406cd (diff)
downloadbcfg2-bc636a8bbddde9dc1d09a6dab2f325c4190f871a.tar.gz
bcfg2-bc636a8bbddde9dc1d09a6dab2f325c4190f871a.tar.bz2
bcfg2-bc636a8bbddde9dc1d09a6dab2f325c4190f871a.zip
moved pidfile creation into the server backends
Diffstat (limited to 'src/lib/Bcfg2/Server/BuiltinCore.py')
-rw-r--r--src/lib/Bcfg2/Server/BuiltinCore.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Server/BuiltinCore.py b/src/lib/Bcfg2/Server/BuiltinCore.py
index ebd426802..61edd9cf7 100644
--- a/src/lib/Bcfg2/Server/BuiltinCore.py
+++ b/src/lib/Bcfg2/Server/BuiltinCore.py
@@ -1,5 +1,6 @@
""" the core of the builtin bcfg2 server """
+import os
import sys
import time
import socket
@@ -9,6 +10,18 @@ from Bcfg2.Compat import xmlrpclib, urlparse
from Bcfg2.SSLServer import XMLRPCServer
+class PidFile(object):
+ """ context handler to write the pid file """
+ def __init__(self, pidfile):
+ self.pidfile = pidfile
+
+ def __enter__(self):
+ open(self.pidfile, "w").write("%s\n" % os.getpid())
+
+ def __exit__(self, exc_type, exc_value, exc_traceback):
+ os.unlink(self.pidfile)
+
+
class Core(BaseCore):
""" The built-in server core """
name = 'bcfg2-server'
@@ -16,7 +29,8 @@ class Core(BaseCore):
def __init__(self, setup):
BaseCore.__init__(self, setup)
self.server = None
- self.context = daemon.DaemonContext()
+ self.context = \
+ daemon.DaemonContext(pidfile=PidFile(self.setup['daemon']))
def _dispatch(self, method, args, dispatch_dict):
"""Custom XML-RPC dispatcher for components.