diff options
Diffstat (limited to 'rhumba.py')
-rwxr-xr-x | rhumba.py | 57 |
1 files changed, 19 insertions, 38 deletions
@@ -23,7 +23,6 @@ import emulab_support as es import jfed_support as js import abc import getpass -import ouroboros_support as our # Represents generic testbed info # @@ -41,7 +40,8 @@ class Testbed: @abc.abstractmethod def create_experiment(self, nodes, links): - return + raise Exception('create_experiment() not implemented') + # Represents an emulab testbed info # @@ -62,6 +62,7 @@ class EmulabTestbed: es.wait_until_nodes_up(self) es.complete_experiment_graph(self, nodes, links) + class jFedTestbed: def __init__(self, exp_name, username, cert_file, jfed_jar, exp_hours = "2", proj_name = "ARCFIRE", authority = "wall2.ilabt.iminds.be"): @@ -76,6 +77,17 @@ class jFedTestbed: def create_experiment(self, nodes, links): js.create_experiment(self, nodes, links) + +# Fake testbed, useful for testing +class FakeTestbed: + def __init__(self, exp_name, username, proj_name = "ARCFIRE", + password = ""): + Testbed.__init__(self, exp_name, username, password, proj_name) + + def create_experiment(self, nodes, links): + print("[Fake testbed] experiment swapped in") + + # Represents an interface on a node # # @name [string] interface name @@ -277,46 +289,15 @@ class Experiment: def add_node(self, node): self.nodes.append(node) - def add_node(self, node): + def del_node(self, node): self.nodes.remove(node) - def run(self): + # Realize the experiment, using a testbed-specific setup + def swap_in(self): self.links = get_links(self.nodes) self.testbed.create_experiment(self.nodes, self.links) -# An experiment over the IRATI implementation -class IRATIExperiment(Experiment): - def __init__(self, testbed, nodes = list()): - Experiment.__init__(self, testbed, nodes) - - def run(self): - print("[IRATI experiment] start") - Experiment.run(self) - print("[IRATI experiment] end") - - -# An experiment over the RLITE implementation -class RLITEExperiment(Experiment): - def __init__(self, testbed, nodes = list()): - Experiment.__init__(self, testbed, nodes) - + @abc.abstractmethod def run(self): - print("[RLITE experiment] start") - Experiment.run(self) - print("[RLITE experiment] end") - + raise Exception('run() method not implemented') -# An experiment over the Ouroboros implementation -class OuroborosExperiment(Experiment): - def __init__(self, testbed, nodes = list()): - Experiment.__init__(self, testbed, nodes) - - def run(self): - print("[Ouroboros experiment] start") - print("Creating resources...") - Experiment.run(self) - print("Setting up Ouroboros...") - our.setup_ouroboros(self.testbed, self.nodes) - print("Binding names...") - our.bind_names(self.testbed, self.nodes) - print("[Ouroboros experiment] end") |