From 009c8ff7570105a79278559202fdd46616b83a92 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Thu, 20 Apr 2017 17:12:34 +0200 Subject: model: Split experiment run() This splits experiment.run() into 4 different operations: swap_in, install_prototype, bootstrap_prototype and swap_out. --- rumba/model.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'rumba/model.py') diff --git a/rumba/model.py b/rumba/model.py index 0d93fcd..d219edb 100644 --- a/rumba/model.py +++ b/rumba/model.py @@ -529,16 +529,17 @@ class Experiment: self.compute_ipcps() @abc.abstractmethod - def run_prototype(self): + def install_prototype(self): raise Exception('run_prototype() method not implemented') - def run(self): - try: - # Realize the experiment testbed (testbed-specific) - self.testbed.swap_in(self) + @abc.abstractmethod + def bootstrap_prototype(self): + raise Exception('run_prototype() method not implemented') + + def swap_in(self): + # Realize the experiment testbed (testbed-specific) + self.testbed.swap_in(self) - # Run the experiment using the prototype (prototype-specific) - self.run_prototype() - finally: - # No matter what happens, undo the testbed (testbed-specific) - self.testbed.swap_out(self) + def swap_out(self): + # Undo the testbed (testbed-specific) + self.testbed.swap_out(self) -- cgit v1.2.3