aboutsummaryrefslogtreecommitdiff
path: root/rhumba.py
diff options
context:
space:
mode:
Diffstat (limited to 'rhumba.py')
-rwxr-xr-xrhumba.py57
1 files changed, 19 insertions, 38 deletions
diff --git a/rhumba.py b/rhumba.py
index fbcfc8f..1ffd092 100755
--- a/rhumba.py
+++ b/rhumba.py
@@ -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")