[CalendarServer-changes] [936]
CalendarServer/branches/users/dreid/cluster
source_changes at macosforge.org
source_changes at macosforge.org
Fri Jan 5 10:50:51 PST 2007
Revision: 936
http://trac.macosforge.org/projects/calendarserver/changeset/936
Author: dreid at apple.com
Date: 2007-01-05 10:50:50 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
Multiple bind addresses, don't expose PyDirector in the config because it's an implementation detail, only expose the scheduler option.
Modified Paths:
--------------
CalendarServer/branches/users/dreid/cluster/conf/caldavd-test.plist
CalendarServer/branches/users/dreid/cluster/conf/caldavd.plist
CalendarServer/branches/users/dreid/cluster/run
CalendarServer/branches/users/dreid/cluster/twistedcaldav/cluster.py
CalendarServer/branches/users/dreid/cluster/twistedcaldav/config.py
CalendarServer/branches/users/dreid/cluster/twistedcaldav/tap.py
Modified: CalendarServer/branches/users/dreid/cluster/conf/caldavd-test.plist
===================================================================
--- CalendarServer/branches/users/dreid/cluster/conf/caldavd-test.plist 2007-01-05 17:31:57 UTC (rev 935)
+++ CalendarServer/branches/users/dreid/cluster/conf/caldavd-test.plist 2007-01-05 18:50:50 UTC (rev 936)
@@ -30,7 +30,9 @@
<string>twistedcaldav/test/data/</string>
<key>BindAddress</key>
- <string>127.0.0.1</string>
+ <array>
+ <string>127.0.0.1</string>
+ </array>
<key>Port</key>
<integer>8008</integer>
@@ -177,22 +179,19 @@
<key>NumProcesses</key>
<integer>2</integer>
- <key>PyDirector</key>
+ <key>LoadBalancer</key>
<dict>
<key>Enabled</key>
<true/>
<key>Scheduler</key>
+ <!-- Least Connections -->
<string>leastconns</string>
+ <!-- Round Robin -->
+ <!-- <string>roundrobin</string> -->
+ <!-- Least Connections and Round Robin -->
+ <!-- <string>leastconnsrr</string> -->
- <key>admin</key>
- <dict>
- <key>username</key>
- <string></string>
-
- <key>password</key>
- <string></string>
- </dict>
</dict>
</dict>
Modified: CalendarServer/branches/users/dreid/cluster/conf/caldavd.plist
===================================================================
--- CalendarServer/branches/users/dreid/cluster/conf/caldavd.plist 2007-01-05 17:31:57 UTC (rev 935)
+++ CalendarServer/branches/users/dreid/cluster/conf/caldavd.plist 2007-01-05 18:50:50 UTC (rev 936)
@@ -30,7 +30,8 @@
<string>/Library/CalendarServer/Documents</string>
<key>BindAddress</key>
- <string></string>
+ <array>
+ </array>
<key>Port</key>
<integer>8008</integer>
@@ -123,13 +124,18 @@
<key>NumProcesses</key>
<integer>0</integer>
- <key>PyDirector</key>
+ <key>LoadBalancer</key>
<dict>
<key>Enabled</key>
<false/>
<key>Scheduler</key>
+ <!-- Least Connections -->
<string>leastconns</string>
+ <!-- Round Robin -->
+ <!-- <string>roundrobin</string> -->
+ <!-- Least Connections and Round Robin -->
+ <!-- <string>leastconnsrr</string> -->
</dict>
</dict>
Modified: CalendarServer/branches/users/dreid/cluster/run
===================================================================
--- CalendarServer/branches/users/dreid/cluster/run 2007-01-05 17:31:57 UTC (rev 935)
+++ CalendarServer/branches/users/dreid/cluster/run 2007-01-05 18:50:50 UTC (rev 936)
@@ -35,7 +35,7 @@
install="";
daemonize="-X";
plugin_name="caldav";
- service_type="standalone";
+ service_type="singleprocess";
usage ()
{
@@ -54,6 +54,7 @@
echo " -d Run caldavd as a daemon";
echo " -i Perform a system install into dst; implies -s";
echo " -I Perform a home install into dst; implies -s";
+ echo " -t Select the type of server to run (singleprocess, multiprocess, or master)";
if [ "${1-}" == "-" ]; then return 0; fi;
exit 64;
Modified: CalendarServer/branches/users/dreid/cluster/twistedcaldav/cluster.py
===================================================================
--- CalendarServer/branches/users/dreid/cluster/twistedcaldav/cluster.py 2007-01-05 17:31:57 UTC (rev 935)
+++ CalendarServer/branches/users/dreid/cluster/twistedcaldav/cluster.py 2007-01-05 18:50:50 UTC (rev 936)
@@ -28,7 +28,7 @@
class TwistdSlaveProcess(object):
prefix = "caldav"
- def __init__(self, twistdLocation, configFile, interface, port, sslPort):
+ def __init__(self, twistdLocation, configFile, interfaces, port, sslPort):
self.twistd = twistdLocation
self.configFile = configFile
@@ -40,7 +40,7 @@
os.path.dirname(config.PIDFile),
'%s.pid' % (self.getName(),))
- self.interface = interface
+ self.interfaces = interfaces
def getName(self):
return '%s-%s' % (self.prefix, self.port)
@@ -54,7 +54,7 @@
self.twistd, '-n', 'caldav',
'-f', self.configFile,
'-o', 'ServerType=singleprocess',
- '-o', 'BindAddress=%s' % (self.interface,),
+ '-o', 'BindAddress=%s' % (','.join(self.interfaces),),
'-o', 'Port=%s' % (self.port,),
'-o', 'SSLPort=%s' % (self.sslPort,),
'-o', 'PIDFile=%s' % (self.pidFile,)]
@@ -69,7 +69,7 @@
return hostTemplate % {'name': name,
'port': port,
- 'bindAddress': self.interface}
+ 'bindAddress': '127.0.0.1'}
def makeService_multiprocess(self, options):
service = procmon.ProcessMonitor()
@@ -80,9 +80,9 @@
port = config.Port
sslport = config.SSLPort
- bindAddress = '127.0.0.1'
+ bindAddress = ['127.0.0.1']
- if not config.MultiProcess['PyDirector']['Enabled']:
+ if not config.MultiProcess['LoadBalancer']['Enabled']:
bindAddress = config.BindAddress
for p in xrange(0, config.MultiProcess['NumProcesses']):
@@ -105,28 +105,32 @@
if config.SSLEnable:
sslHosts.append(process.getHostLine(ssl=True))
- if config.MultiProcess['PyDirector']['Enabled']:
+ if config.MultiProcess['LoadBalancer']['Enabled']:
services = []
- if not config.SSLOnly:
- services.append(serviceTemplate % {
- 'name': 'http',
- 'bindAddress': config.BindAddress,
- 'port': config.Port,
- 'scheduler':
- config.MultiProcess['PyDirector']['Scheduler'],
- 'hosts': '\n'.join(hosts)
- })
+ if not config.BindAddress:
+ config.BindAddress = ['']
+
+ for bindAddress in config.BindAddress:
+ if not config.SSLOnly:
+ services.append(serviceTemplate % {
+ 'name': 'http',
+ 'bindAddress': bindAddress,
+ 'port': config.Port,
+ 'scheduler':
+ config.MultiProcess['LoadBalancer']['Scheduler'],
+ 'hosts': '\n'.join(hosts)
+ })
- if config.SSLEnable:
- services.append(serviceTemplate % {
- 'name': 'https',
- 'bindAddress': config.BindAddress,
- 'port': config.SSLPort,
- 'scheduler':
- config.MultiProcess['PyDirector']['Scheduler'],
+ if config.SSLEnable:
+ services.append(serviceTemplate % {
+ 'name': 'https',
+ 'bindAddress': bindAddress,
+ 'port': config.SSLPort,
+ 'scheduler':
+ config.MultiProcess['LoadBalancer']['Scheduler'],
'hosts': '\n'.join(sslHosts),
- })
+ })
pdconfig = configTemplate % {
'services': '\n'.join(services),
Modified: CalendarServer/branches/users/dreid/cluster/twistedcaldav/config.py
===================================================================
--- CalendarServer/branches/users/dreid/cluster/twistedcaldav/config.py 2007-01-05 17:31:57 UTC (rev 935)
+++ CalendarServer/branches/users/dreid/cluster/twistedcaldav/config.py 2007-01-05 18:50:50 UTC (rev 936)
@@ -23,7 +23,7 @@
defaultConfigFile = '/etc/caldavd/caldavd.plist'
defaultConfig = {
- 'BindAddress': '127.0.0.1',
+ 'BindAddress': ['127.0.0.1'],
'DirectoryService': {
'params': {'node': '/Search'},
'type': 'twistedcaldav.directory.appleopendirectory.OpenDirectoryService'
@@ -58,13 +58,9 @@
'MultiProcess': {
'NumProcesses': 10,
- 'PyDirector': {
+ 'LoadBalancer': {
'Enabled': True,
'Scheduler': 'leastconns',
- 'admin': {
- 'username': None,
- 'password': None,
- },
},
},
}
Modified: CalendarServer/branches/users/dreid/cluster/twistedcaldav/tap.py
===================================================================
--- CalendarServer/branches/users/dreid/cluster/twistedcaldav/tap.py 2007-01-05 17:31:57 UTC (rev 935)
+++ CalendarServer/branches/users/dreid/cluster/twistedcaldav/tap.py 2007-01-05 18:50:50 UTC (rev 936)
@@ -224,21 +224,25 @@
service = Web2Service(logObserver)
- if not config.SSLOnly:
- httpService = internet.TCPServer(int(config.Port), channel,
- interface=config.BindAddress)
- httpService.setServiceParent(service)
+ if not config.BindAddress:
+ config.BindAddress = ['']
- if config.SSLEnable:
- from twisted.internet.ssl import DefaultOpenSSLContextFactory
- httpsService = internet.SSLServer(
- int(config.SSLPort),
- channel,
- DefaultOpenSSLContextFactory(config.SSLPrivateKey,
- config.SSLCertificate),
- interface=config.BindAddress
- )
- httpsService.setServiceParent(service)
+ for bindAddress in config.BindAddress:
+ if not config.SSLOnly:
+ httpService = internet.TCPServer(int(config.Port), channel,
+ interface=bindAddress)
+ httpService.setServiceParent(service)
+
+ if config.SSLEnable:
+ from twisted.internet.ssl import DefaultOpenSSLContextFactory
+ httpsService = internet.SSLServer(
+ int(config.SSLPort),
+ channel,
+ DefaultOpenSSLContextFactory(config.SSLPrivateKey,
+ config.SSLCertificate),
+ interface=bindAddress
+ )
+ httpsService.setServiceParent(service)
return service
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070105/b693d1ee/attachment.html
More information about the calendarserver-changes
mailing list