[CalendarServer-changes] [8242] CalendarServer/branches/users/glyph/parallel-sim/contrib/performance /loadtest/sim.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue Nov 1 17:50:44 PDT 2011
Revision: 8242
http://trac.macosforge.org/projects/calendarserver/changeset/8242
Author: glyph at apple.com
Date: 2011-11-01 17:50:44 -0700 (Tue, 01 Nov 2011)
Log Message:
-----------
make it possible to instantiate directly from a property list dict instead of from a command-line invocation.
Modified Paths:
--------------
CalendarServer/branches/users/glyph/parallel-sim/contrib/performance/loadtest/sim.py
Modified: CalendarServer/branches/users/glyph/parallel-sim/contrib/performance/loadtest/sim.py
===================================================================
--- CalendarServer/branches/users/glyph/parallel-sim/contrib/performance/loadtest/sim.py 2011-11-02 00:50:16 UTC (rev 8241)
+++ CalendarServer/branches/users/glyph/parallel-sim/contrib/performance/loadtest/sim.py 2011-11-02 00:50:44 UTC (rev 8242)
@@ -196,21 +196,31 @@
except UsageError, e:
raise SystemExit(str(e))
+ return cls.fromConfig(options.config, options['runtime'], output)
+
+
+ @classmethod
+ def fromConfig(cls, config, runtime=None, output=stdout):
+ """
+ Create a L{LoadSimulator} from a parsed instance of a configuration
+ property list.
+ """
+
server = 'http://127.0.0.1:8008/'
- if 'server' in options.config:
- server = options.config['server']
+ if 'server' in config:
+ server = config['server']
- if 'arrival' in options.config:
+ if 'arrival' in config:
arrival = Arrival(
- namedAny(options.config['arrival']['factory']),
- options.config['arrival']['params'])
+ namedAny(config['arrival']['factory']),
+ config['arrival']['params'])
else:
arrival = Arrival(
SmoothRampUp, dict(groups=10, groupSize=1, interval=3))
parameters = PopulationParameters()
- if 'clients' in options.config:
- for clientConfig in options.config['clients']:
+ if 'clients' in config:
+ for clientConfig in config['clients']:
parameters.addClient(
clientConfig["weight"],
ClientType(
@@ -225,21 +235,22 @@
1, ClientType(SnowLeopard, {}, [Eventer, Inviter, Accepter]))
observers = []
- if 'observers' in options.config:
- for observerName in options.config['observers']:
+ if 'observers' in config:
+ for observerName in config['observers']:
observers.append(namedAny(observerName)())
records = []
- if 'accounts' in options.config:
- loader = options.config['accounts']['loader']
- params = options.config['accounts']['params']
+ if 'accounts' in config:
+ loader = config['accounts']['loader']
+ params = config['accounts']['params']
records.extend(namedAny(loader)(**params))
output.write("Loaded {0} accounts.\n".format(len(records)))
return cls(server, arrival, parameters,
observers=observers, records=records,
- runtime=options['runtime'])
+ runtime=runtime)
+
@classmethod
def _convertParams(cls, params):
"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111101/ff2e3917/attachment.html>
More information about the calendarserver-changes
mailing list