[CalendarServer-changes] [6597] CalendarServer/branches/users/glyph/dont-start-postgres/ calendarserver/tap/caldav.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Nov 10 18:53:54 PST 2010


Revision: 6597
          http://trac.macosforge.org/projects/calendarserver/changeset/6597
Author:   glyph at apple.com
Date:     2010-11-10 18:53:50 -0800 (Wed, 10 Nov 2010)
Log Message:
-----------
Move slave-process initialization into a function (preparing to move it into its own service)

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/dont-start-postgres/calendarserver/tap/caldav.py

Modified: CalendarServer/branches/users/glyph/dont-start-postgres/calendarserver/tap/caldav.py
===================================================================
--- CalendarServer/branches/users/glyph/dont-start-postgres/calendarserver/tap/caldav.py	2010-11-11 02:53:30 UTC (rev 6596)
+++ CalendarServer/branches/users/glyph/dont-start-postgres/calendarserver/tap/caldav.py	2010-11-11 02:53:50 UTC (rev 6597)
@@ -113,6 +113,17 @@
         gid = gidFromString(gid)
     return (uid, gid)
 
+
+PARENT_ENVIRONMENT = {
+    "PATH": os.environ.get("PATH", ""),
+    "PYTHONPATH": os.environ.get("PYTHONPATH", ""),
+    "LD_LIBRARY_PATH": os.environ.get("LD_LIBRARY_PATH", ""),
+    "DYLD_LIBRARY_PATH": os.environ.get("DYLD_LIBRARY_PATH", ""),
+}
+
+if "KRB5_KTNAME" in os.environ:
+    PARENT_ENVIRONMENT["KRB5_KTNAME"] = os.environ["KRB5_KTNAME"]
+
 class CalDAVStatisticsProtocol (Protocol):
 
     def connectionMade(self):
@@ -822,15 +833,6 @@
         else:
             dispenser = None
 
-        parentEnv = {
-            "PATH": os.environ.get("PATH", ""),
-            "PYTHONPATH": os.environ.get("PYTHONPATH", ""),
-            "LD_LIBRARY_PATH": os.environ.get("LD_LIBRARY_PATH", ""),
-            "DYLD_LIBRARY_PATH": os.environ.get("DYLD_LIBRARY_PATH", ""),
-        }
-        if "KRB5_KTNAME" in os.environ:
-            parentEnv["KRB5_KTNAME"] = os.environ["KRB5_KTNAME"]
-
         #
         # Calculate the number of processes to spawn
         #
@@ -886,24 +888,6 @@
                         sock = _openSocket(bindAddress, int(portNum))
                         inheritSSLFDs.append(sock.fileno())
 
-        for p in xrange(0, config.MultiProcess.ProcessCount):
-            if config.UseMetaFD:
-                extraArgs = dict(metaSocket=cl.dispatcher.addSocket())
-            else:
-                extraArgs = dict(inheritFDs=inheritFDs,
-                                 inheritSSLFDs=inheritSSLFDs)
-            if dispenser is not None:
-                extraArgs.update(ampSQLDispenser=dispenser)
-            process = TwistdSlaveProcess(
-                sys.argv[0],
-                self.tapname,
-                options["config"],
-                p,
-                config.BindAddresses,
-                **extraArgs
-            )
-            monitor.addProcessObject(process, parentEnv)
-
         for name, pool in config.Memcached.Pools.items():
             if pool.ServerEnabled:
                 self.log_info("Adding memcached service for pool: %s" % (name,))
@@ -922,8 +906,14 @@
 
                 memcachedArgv.extend(config.Memcached.Options)
 
-                monitor.addProcess('memcached-%s' % (name,), memcachedArgv, env=parentEnv)
+                monitor.addProcess('memcached-%s' % (name,), memcachedArgv,
+                                   env=PARENT_ENVIRONMENT)
 
+        self.addSlaveProcesses(
+            monitor, dispenser, cl.dispatcher, options["config"],
+            inheritFDs=inheritFDs, inheritSSLFDs=inheritSSLFDs
+        )
+
         if (
             config.Notifications.Enabled and
             config.Notifications.InternalNotificationHost == "localhost"
@@ -944,7 +934,7 @@
                 "-f", options["config"],
             ))
             monitor.addProcess("notifications", notificationsArgv,
-                env=parentEnv)
+                env=PARENT_ENVIRONMENT)
 
         if (
             config.Scheduling.iMIP.Enabled and
@@ -966,7 +956,8 @@
                 "-f", options["config"],
             ))
 
-            monitor.addProcess("mailgateway", mailGatewayArgv, env=parentEnv)
+            monitor.addProcess("mailgateway", mailGatewayArgv,
+                               env=PARENT_ENVIRONMENT)
 
         self.log_info("Adding task service")
         taskArgv = [
@@ -983,7 +974,7 @@
             "-f", options["config"],
         ))
 
-        monitor.addProcess("caldav_task", taskArgv, env=parentEnv)
+        monitor.addProcess("caldav_task", taskArgv, env=PARENT_ENVIRONMENT)
 
 
         stats = CalDAVStatisticsServer(logger)
@@ -996,6 +987,23 @@
         return s
 
 
+    def addSlaveProcesses(self, monitor, dispenser, dispatcher, configPath,
+                          inheritFDs=None, inheritSSLFDs=None):
+        for slaveNumber in xrange(0, config.MultiProcess.ProcessCount):
+            if config.UseMetaFD:
+                extraArgs = dict(metaSocket=dispatcher.addSocket())
+            else:
+                extraArgs = dict(inheritFDs=inheritFDs,
+                                 inheritSSLFDs=inheritSSLFDs)
+            if dispenser is not None:
+                extraArgs.update(ampSQLDispenser=dispenser)
+            process = TwistdSlaveProcess(
+                sys.argv[0], self.tapname, configPath, slaveNumber,
+                config.BindAddresses, **extraArgs
+            )
+            monitor.addProcessObject(process, PARENT_ENVIRONMENT)
+
+
     def deleteStaleSocketFiles(self):
 
         # Check all socket files we use.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20101110/b0a75c59/attachment.html>


More information about the calendarserver-changes mailing list