aboutsummaryrefslogtreecommitdiff
path: root/examples/example.py
diff options
context:
space:
mode:
authorMarco Capitani <m.capitani@nextworks.it>2017-11-16 16:59:04 +0100
committerSander Vrijders <sander.vrijders@ugent.be>2017-11-17 15:17:31 +0000
commit38e25070ab5e5b74917797f9049dd226afeb9728 (patch)
tree219891c01f85a6c4c8da13c6f247e7230282bad7 /examples/example.py
parent9d21bf51eb1765e0bdb15ef3d8b8700327bf2f66 (diff)
downloadrumba-38e25070ab5e5b74917797f9049dd226afeb9728.tar.gz
rumba-38e25070ab5e5b74917797f9049dd226afeb9728.zip
storyboard: add logging and log retrieval
Diffstat (limited to 'examples/example.py')
-rwxr-xr-xexamples/example.py55
1 files changed, 42 insertions, 13 deletions
diff --git a/examples/example.py b/examples/example.py
index 8d17ff2..a26ab3b 100755
--- a/examples/example.py
+++ b/examples/example.py
@@ -30,26 +30,55 @@ n1.add_policy("security-manager", "passwd")
e1 = ShimEthDIF("e1")
a = Node("a",
- difs = [n1, e1],
- dif_registrations = {n1 : [e1]})
+ difs=[n1, e1],
+ dif_registrations={n1: [e1]})
b = Node("b",
- difs = [e1, n1],
- dif_registrations = {n1 : [e1]})
+ difs=[e1, n1],
+ dif_registrations={n1: [e1]})
-tb = jfed.Testbed(exp_name = "example1",
- username = "user1",
- cert_file = "/home/user1/cert.pem")
+tb = jfed.Testbed(exp_name="example1",
+ username="user1",
+ cert_file="/home/user1/cert.pem")
+
+exp = rl.Experiment(tb, nodes=[a, b])
+
+print(exp)
+
+# General setup (can be reused in other scripts as-is)
+storyboard = StoryBoard(duration=30)
+
+# Clients can be applications that just keep running, and will be
+# stopped by a SIGINT...
+client1 = Client("rinaperf",
+ options="-t perf -s 1000 -c 0")
+
+# ... or a custom shutdown method can be provided.
+client2 = Client("rinaperf",
+ options="-t perf -s 1000 -D <duration>",
+ shutdown="")
+
+server = Server("rinaperf", options="-l", arrival_rate=0.5,
+ mean_duration=5, clients=[client1, client2])
+
+
+# Experiment-specific configuration:
+# (This can be done anytime before storyboard.start())
+
+storyboard.set_experiment(exp)
+storyboard.add_server((server, a))
+client1.add_node(b)
+client2.add_node(b)
-exp = rl.Experiment(tb, nodes = [a, b])
print(exp)
with ExperimentManager(exp):
exp.swap_in()
+ exp.install_prototype()
exp.bootstrap_prototype()
- c1 = Client("rinaperf", options ="-t perf -s 1000 -c 0", nodes=[b])
- s1 = Server("rinaperf", arrival_rate=2, mean_duration=5,
- options = "-l", nodes = [a], clients = [c1])
- sb = StoryBoard(duration=3600, experiment=exp, servers=[s1])
- sb.start()
+ storyboard.start()
+
+ # Fetch the client/server logs from the nodes
+ # and put them in the cwd.
+ storyboard.fetch_logs()