Implement ExperimentManager
refs: #2852
Change-Id: I49b50989477914ae4b076d6d39ca661f50fc92aa
diff --git a/ndn/experiments/multiple_failure_experiment.py b/ndn/experiments/multiple_failure_experiment.py
index db7d536..27c372a 100644
--- a/ndn/experiments/multiple_failure_experiment.py
+++ b/ndn/experiments/multiple_failure_experiment.py
@@ -7,7 +7,7 @@
class MultipleFailureExperiment(Experiment):
- def __init__(self, net, nodes, convergenceTime, strategy):
+ def __init__(self, args):
self.PING_COLLECTION_TIME_BEFORE_FAILURE = 60
@@ -15,10 +15,12 @@
self.RECOVERY_INTERVAL = 60
# This is the number of pings required to make it through the full experiment
- nInitialPings = self.PING_COLLECTION_TIME_BEFORE_FAILURE + len(net.hosts)*(self.FAILURE_INTERVAL + self.RECOVERY_INTERVAL)
+ nInitialPings = self.PING_COLLECTION_TIME_BEFORE_FAILURE + len(args["net"].hosts)*(self.FAILURE_INTERVAL + self.RECOVERY_INTERVAL)
print("Scheduling with %s initial pings" % nInitialPings)
- Experiment.__init__(self, net, nodes, convergenceTime, nInitialPings, strategy)
+ args["nPings"] = nInitialPings
+
+ Experiment.__init__(self, args)
def failNode(self, host):
print("Bringing %s down" % host.name)
@@ -65,3 +67,5 @@
self.ping(host, other, nPings)
time.sleep(self.RECOVERY_INTERVAL)
+
+Experiment.register("multiple-failure", MultipleFailureExperiment)