thomasvs - in flumotion/trunk: . flumotion/worker
flumotion-commit at lists.fluendo.com
flumotion-commit at lists.fluendo.com
Mon Mar 12 23:34:37 CET 2007
Author: thomasvs
Date: Mon Mar 12 23:34:29 2007
New Revision: 4619
Modified:
flumotion/trunk/ChangeLog
flumotion/trunk/flumotion/worker/main.py
flumotion/trunk/flumotion/worker/worker.py
Log:
* flumotion/worker/main.py:
* flumotion/worker/worker.py:
Implement --random-feederports as per #585.
Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog (original)
+++ flumotion/trunk/ChangeLog Mon Mar 12 23:34:29 2007
@@ -1,5 +1,11 @@
2007-03-12 Thomas Vander Stichele <thomas at apestaart dot org>
+ * flumotion/worker/main.py:
+ * flumotion/worker/worker.py:
+ Implement --random-feederports as per #585.
+
+2007-03-12 Thomas Vander Stichele <thomas at apestaart dot org>
+
* flumotion/admin/gtk/main.py:
Add a comment.
Modified: flumotion/trunk/flumotion/worker/main.py
==============================================================================
--- flumotion/trunk/flumotion/worker/main.py (original)
+++ flumotion/trunk/flumotion/worker/main.py Mon Mar 12 23:34:29 2007
@@ -90,12 +90,17 @@
group.add_option('-F', '--feederports',
action="store", type="string", dest="feederports",
help="range of feeder ports to use")
+ group.add_option('', '--random-feederports',
+ action="store_true",
+ dest="randomFeederports",
+ help="Use randomly available feeder ports")
parser.add_option_group(group)
return parser
def _readConfig(workerFile, options):
+ # modifies options dict in-place
log.info('worker', 'Reading configuration from %s' % workerFile)
try:
cfg = config.WorkerConfigXML(workerFile)
@@ -138,6 +143,9 @@
# XML could specify it as empty, meaning "don't use any"
if not options.feederports and cfg.feederports is not None:
options.feederports = cfg.feederports
+ if options.randomFeederports:
+ options.feederports = None
+ log.debug('worker', 'Using random feederports')
if options.feederports is not None:
log.debug('worker', 'Using feederports %r' % options.feederports)
@@ -202,7 +210,7 @@
log.debug('worker', 'Setting worker name %s (from hostname)' %
options.name)
- if options.feederports is None:
+ if options.feederports is None and not options.randomFeederports:
options.feederports = configure.defaultGstPortRange
log.debug('worker', 'Using default feederports %r' %
options.feederports)
Modified: flumotion/trunk/flumotion/worker/worker.py
==============================================================================
--- flumotion/trunk/flumotion/worker/worker.py (original)
+++ flumotion/trunk/flumotion/worker/worker.py Mon Mar 12 23:34:29 2007
@@ -545,7 +545,10 @@
self.authenticator = None
# the last one is reserved for our FeedServer
- self.medium = WorkerMedium(self, self.options.feederports[:-1])
+ ports = []
+ if not self.options.randomFeederports:
+ ports = self.options.feederports[:-1]
+ self.medium = WorkerMedium(self, ports)
self._socketPath = _getSocketPath()
self.kindergarten = Kindergarten(options, self._socketPath, self)
self.jobHeaven = JobHeaven(self)
@@ -618,18 +621,26 @@
"""
@returns: (port, portNumber)
"""
- try:
- self.feedServerPort = self.options.feederports[-1]
- except IndexError:
- self.info('Not starting feed server because no port is configured')
- return
+ port = None
+ if self.options.randomFeederports:
+ port = 0
+ else:
+ try:
+ port = self.options.feederports[-1]
+ except IndexError:
+ self.info(
+ 'Not starting feed server because no port is configured')
+ return
- self.debug('Listening for feed requests on TCP port %s' %
- self.feedServerPort)
self._feedServerPort = reactor.listenWith(
- fdserver.PassableServerPort, self.feedServerPort,
+ fdserver.PassableServerPort, port,
self._feedServerFactory)
+ # jumping through hoops is fun
+ self.feedServerPort = self._feedServerPort.getHost().port
+ self.debug('Listening for feed requests on TCP port %s' %
+ self.feedServerPort)
+
# FIXME: this is only called from the tests
def teardown(self):
"""
More information about the flumotion-commit
mailing list