[CalendarServer-changes] [1459]
CalendarServer/trunk/twistedcaldav/cluster.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Apr 9 16:24:02 PDT 2007
Revision: 1459
http://trac.macosforge.org/projects/calendarserver/changeset/1459
Author: dreid at apple.com
Date: 2007-04-09 16:24:02 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Fix issues regarding a single process not binding correctly to BindHTTPPorts or BindAddresses.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/cluster.py
Modified: CalendarServer/trunk/twistedcaldav/cluster.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/cluster.py 2007-04-07 02:11:55 UTC (rev 1458)
+++ CalendarServer/trunk/twistedcaldav/cluster.py 2007-04-09 23:24:02 UTC (rev 1459)
@@ -59,16 +59,16 @@
self.configFile = configFile
- self.port = port
- self.sslPort = sslPort
+ self.ports = port
+ self.sslPorts = sslPort
self.interfaces = interfaces
def getName(self):
- return '%s-%s' % (self.prefix, self.port)
+ return '%s-%s' % (self.prefix, self.ports[0])
def getSSLName(self):
- return '%s-%s' % (self.prefix, self.sslPort)
+ return '%s-%s' % (self.prefix, self.sslPorts[0])
def getCommandLine(self):
return [
@@ -80,21 +80,21 @@
'-f', self.configFile,
'-o', 'ProcessType=Slave',
'-o', 'BindAddresses=%s' % (','.join(self.interfaces),),
- '-o', 'BindHTTPPorts=%s' % (self.port,),
- '-o', 'BindSSLPorts=%s' % (self.sslPort,),
+ '-o', 'BindHTTPPorts=%s' % (','.join(map(str, self.ports)),),
+ '-o', 'BindSSLPorts=%s' % (','.join(map(str, self.sslPorts)),),
'-o', 'PIDFile=None',
'-o', 'ErrorLogFile=None']
def getHostLine(self, ssl=None):
name = self.getName()
- port = self.port
+ port = self.ports
if ssl:
name = self.getSSLName()
- port = self.sslPort
+ port = self.sslPorts
return hostTemplate % {'name': name,
- 'port': port,
+ 'port': port[0],
'bindAddress': '127.0.0.1'}
def makeService_Combined(self, options):
@@ -105,13 +105,13 @@
hosts = []
sslHosts = []
- port = config.HTTPPort
- sslport = config.SSLPort
+ port = [config.HTTPPort,]
+ sslPort = [config.SSLPort,]
bindAddress = ['127.0.0.1']
- if not config.MultiProcess['LoadBalancer']['Enabled']:
- bindAddress = config.BindAddresses
+ # Attempt to calculate the number of processes to use
+ # 1 per processor
if config.MultiProcess['ProcessCount'] == 0:
try:
@@ -125,16 +125,37 @@
log.msg(err)
config.MultiProcess['ProcessCount'] = 1
+ if config.MultiProcess['ProcessCount'] > 1:
+ if config.BindHTTPPorts:
+ port = [list(reversed(config.BindHTTPPorts))[0]]
+
+ if config.BindSSLPorts:
+ sslPort = [list(reversed(config.BindSSLPorts))[0]]
+
+ elif config.MultiProcess['ProcessCount'] == 1:
+ if config.BindHTTPPorts:
+ port = config.BindHTTPPorts
+
+ if config.BindSSLPorts:
+ sslPort = config.BindSSLPorts
+
+ # If the load balancer isn't enabled, or if we only have one process
+ # We listen directly on the interfaces.
+
+ if ((not config.MultiProcess['LoadBalancer']['Enabled']) or
+ (config.MultiProcess['ProcessCount'] == 1)):
+ bindAddress = config.BindAddresses
+
for p in xrange(0, config.MultiProcess['ProcessCount']):
- if int(config.MultiProcess['ProcessCount']) > 1:
- port += 1
- sslport += 1
+ if config.MultiProcess['ProcessCount'] > 1:
+ port = [port[0] + 1]
+ sslPort = [sslPort[0] + 1]
process = TwistdSlaveProcess(config.Twisted['twistd'],
self.tapname,
options['config'],
bindAddress,
- port, sslport)
+ port, sslPort)
service.addProcess(process.getName(),
process.getCommandLine(),
@@ -146,6 +167,8 @@
if config.SSLPort:
sslHosts.append(process.getHostLine(ssl=True))
+ # Set up pydirector config file.
+
if (config.MultiProcess['LoadBalancer']['Enabled'] and
config.MultiProcess['ProcessCount'] > 1):
services = []
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070409/2cc5c94e/attachment.html
More information about the calendarserver-changes
mailing list