From 38e25070ab5e5b74917797f9049dd226afeb9728 Mon Sep 17 00:00:00 2001 From: Marco Capitani Date: Thu, 16 Nov 2017 16:59:04 +0100 Subject: storyboard: add logging and log retrieval --- examples/example.py | 55 ++++++++++++++++++++++++++++++---------- examples/rinaperf_sb-usage.py | 58 ------------------------------------------- 2 files changed, 42 insertions(+), 71 deletions(-) delete mode 100644 examples/rinaperf_sb-usage.py (limited to 'examples') 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 ", + 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() diff --git a/examples/rinaperf_sb-usage.py b/examples/rinaperf_sb-usage.py deleted file mode 100644 index 0e7ca72..0000000 --- a/examples/rinaperf_sb-usage.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python - -from rumba.model import * -from rumba.storyboard import * -import rumba.testbeds.qemu as qemu -import rumba.prototypes.irati as irati -import rumba.log as log -from rumba.utils import ExperimentManager - -log.set_logging_level('DEBUG') - - -n1 = NormalDIF("n1") - -n1.add_policy("rmt.pff", "lfa") -n1.add_policy("security-manager", "passwd") - -e1 = ShimEthDIF("e1") - -a = Node("a", - difs=[n1, e1], - dif_registrations={n1: [e1]}) - -b = Node("b", - difs=[e1, n1], - dif_registrations={n1: [e1]}) - -tb = qemu.Testbed(exp_name="example1", - username="root", - password="root") - -exp = irati.Experiment(tb, nodes=[a, b]) - - -# General setup (can be reused in other scripts as-is) -storyboard = StoryBoard(duration=30) -client = Client("rinaperf", - options="-t perf -s 1000 -D ", - shutdown="") -server = Server("rinaperf", options="-l", arrival_rate=0.5, - mean_duration=5, clients=[client]) - - -# Experiment-specific configuration: -# (This can be done anytime before storyboard.start()) - -storyboard.set_experiment(exp) -storyboard.add_server((server, a)) -client.add_node(b) - - -print(exp) - -with ExperimentManager(exp): - exp.swap_in() - exp.bootstrap_prototype() - storyboard.start() - input('ENTER') -- cgit v1.2.3