aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2017-02-03 14:25:52 +0100
committerSander Vrijders <sander.vrijders@intec.ugent.be>2017-02-03 14:25:52 +0100
commita79578988cb2bc7e08a516aca93a3816d996072d (patch)
tree7a1cff1b8bf2f572752502d1a9efe46639d40e81
parent2a085b29e2754500e87cbb1a90e89301671eabe8 (diff)
downloadrumba-a79578988cb2bc7e08a516aca93a3816d996072d.tar.gz
rumba-a79578988cb2bc7e08a516aca93a3816d996072d.zip
rhumba: Remove experiment name and add more info
This removes the experiment name in the different experiments. It also adds some more info to the Node class, such as the full URL of the node after swap-in.
-rw-r--r--emulab_support.py1
-rw-r--r--jfed_support.py6
-rwxr-xr-xmain.py23
-rwxr-xr-xrhumba.py39
4 files changed, 39 insertions, 30 deletions
diff --git a/emulab_support.py b/emulab_support.py
index 6fe0055..db779a9 100644
--- a/emulab_support.py
+++ b/emulab_support.py
@@ -297,6 +297,7 @@ def complete_experiment_graph(testbed, nodes, p2plinks):
elif link.node_b.name == node.name and \
link.int_b.ip == item[1]:
link.int_b.name = item[0]
+ node.full_name = full_name(testbed, node.name)
def setup_vlan(testbed, node_name, vlan_id, int_name):
'''
diff --git a/jfed_support.py b/jfed_support.py
index aa933d8..c98277d 100644
--- a/jfed_support.py
+++ b/jfed_support.py
@@ -100,6 +100,12 @@ def create_experiment(testbed, nodes, links):
create_rspec(testbed, nodes, links)
testbed.manifest = testbed.exp_name + ".rrspec"
+ for node in nodes:
+ auth_name_r = testbed.auth_name.replace(".", "-")
+ node.full_name = node.name + "." + testbed.exp_name + "." + \
+ testbed.proj_name + "." + auth_name_r + \
+ "." + testbed.auth_name
+
subprocess.call(["java", "-jar", testbed.jfed_jar, "create", "-S", \
testbed.proj_name, "--rspec", \
testbed.rspec, "-s", \
diff --git a/main.py b/main.py
index 49508e9..3200f77 100755
--- a/main.py
+++ b/main.py
@@ -4,28 +4,21 @@
from rhumba import *
-n1 = NormalDIF("n1", policies = {"rmt.pff": "lfa",
- "security-manager": "passwd"})
-
e1 = ShimEthDIF("e1")
a = Node("a",
- difs = [n1, e1],
- dif_registrations = {n1 : [e1]},
- registrations = {"a.crap" : [n1]},
- bindings = {"a.crap" : "/usr/bin/crap"})
+ difs = [e1],
+ registrations = {"cbr.a" : [e1]},
+ bindings = {"cbr.a" : "/usr/bin/cbr"})
b = Node("b",
- difs = [e1, n1],
- dif_registrations = {n1 : [e1]})
+ difs = [e1])
-tb = jFedTestbed(exp_name = "letest",
- username = "sander",
- cert_file = "cert.pem",
- jfed_jar = "jfed_cli/experimenter-cli.jar")
+tb = EmulabTestbed(exp_name = "test001",
+ username = "sander",
+ url = "wall2.ilabt.iminds.be")
-exp = IRATIExperiment("paperino", tb,
- nodes = [a, b])
+exp = OuroborosExperiment(tb, nodes = [a, b])
print(exp)
diff --git a/rhumba.py b/rhumba.py
index d8cb17c..843b319 100755
--- a/rhumba.py
+++ b/rhumba.py
@@ -67,6 +67,7 @@ class jFedTestbed:
passwd = getpass.getpass(prompt = "Password for certificate file: ")
Testbed.__init__(self, exp_name, username, passwd, proj_name)
self.authority = "urn:publicid:IDN+" + authority + "+authority+cm"
+ self.auth_name = authority
self.cert_file = cert_file
self.jfed_jar = jfed_jar
self.exp_hours = exp_hours
@@ -144,6 +145,12 @@ class DIF:
def del_member(self, node):
self.members.remove(node)
+# Shim over UDP
+#
+class ShimUDPDIF(DIF):
+ def __init__(self, name, members = list()):
+ DIF.__init__(self, name, members)
+
# Shim over Ethernet
#
# @link_speed [int] Speed of the Ethernet network, in Mbps
@@ -195,6 +202,7 @@ class Node:
self.dif_registrations = dif_registrations
self.registrations = registrations
self.bindings = bindings
+ self.full_name = name
def __repr__(self):
s = "Node " + self.name + ":\n"
@@ -254,13 +262,12 @@ class Node:
# @nodes: Nodes in the experiment
#
class Experiment:
- def __init__(self, name, testbed, nodes = list()):
- self.name = name
+ def __init__(self, testbed, nodes = list()):
self.nodes = nodes
self.testbed = testbed
def __repr__(self):
- s = "%s:" % self.name
+ s = ""
for n in self.nodes:
s += "\n" + str(n)
@@ -278,32 +285,34 @@ class Experiment:
# An experiment over the IRATI implementation
class IRATIExperiment(Experiment):
- def __init__(self, name, testbed, nodes = list()):
- Experiment.__init__(self, name, testbed, nodes)
+ def __init__(self, testbed, nodes = list()):
+ Experiment.__init__(self, testbed, nodes)
def run(self):
- print("[IRATI experiment %s] start" % self.name)
+ print("[IRATI experiment] start")
Experiment.run(self)
- print("[IRATI experiment %s] end" % self.name)
+ print("[IRATI experiment] end")
# An experiment over the RLITE implementation
class RLITEExperiment(Experiment):
- def __init__(self, name, testbed, nodes = list()):
- Experiment.__init__(self, name, testbed, nodes)
+ def __init__(self, testbed, nodes = list()):
+ Experiment.__init__(self, testbed, nodes)
def run(self):
- print("[RLITE experiment %s] start" % self.name)
+ print("[RLITE experiment] start")
Experiment.run(self)
- print("[RLITE experiment %s] end" % self.name)
+ print("[RLITE experiment] end")
# An experiment over the Ouroboros implementation
class OuroborosExperiment(Experiment):
- def __init__(self, name, testbed, nodes = list()):
- Experiment.__init__(self, name, testbed, nodes)
+ def __init__(self, testbed, nodes = list()):
+ Experiment.__init__(self, testbed, nodes)
def run(self):
- print("[Ouroboros experiment %s] start" % self.name)
+ print("[Ouroboros experiment] start")
Experiment.run(self)
- print("[Ouroboros experiment %s] end" % self.name)
+ for node in self.nodes:
+ print(node.full_name)
+ print("[Ouroboros experiment] end")