aboutsummaryrefslogtreecommitdiff
path: root/rhumba.py
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2017-02-07 10:34:36 +0000
committerSander Vrijders <sander.vrijders@intec.ugent.be>2017-02-07 10:34:36 +0000
commit46975a115ee68ed742bb01d203dd6ec3d84dfa6b (patch)
tree6a87235d1a4a848ed7f9ef90f399a0a8d8f0d99b /rhumba.py
parent06f455b9b47d9a902b67f06ba85af071e68e06ce (diff)
parent0700292bbee309aab483692e98857018840f86ac (diff)
downloadrumba-46975a115ee68ed742bb01d203dd6ec3d84dfa6b.tar.gz
rumba-46975a115ee68ed742bb01d203dd6ec3d84dfa6b.zip
Merge branch 'master-vincenzo' into 'master'
Master vincenzo See merge request !5
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")