#!/usr/bin/env python # An example script using the rumba package from rumba.model import * from rumba.utils import ExperimentManager from rumba.storyboard import * # import testbed plugins import rumba.testbeds.jfed as jfed # import prototype plugins import rumba.prototypes.ouroboros as our import rumba.log as log log.set_logging_level('DEBUG') n1 = UnicastLayer("n1") n1.add_policy("rmt.pff", "lfa") n1.add_policy("security-manager", "passwd") e1 = EthDixLayer("e1") a = Node("a", layers=[n1, e1], registrations={n1: [e1]}) b = Node("b", layers=[e1, n1], registrations={n1: [e1]}) tb = jfed.Testbed(exp_name="example1", username="user1", cert_file="/home/user1/cert.pem") exp = our.Experiment(tb, nodes=[a, b]) print(exp) # General setup (can be reused in other scripts as-is) storyboard = StoryBoard(duration=30) # Experiment-specific configuration: # (This can be done anytime before storyboard.start()) storyboard.set_experiment(exp) storyboard.add_server_on_node(server, a) client1.add_node(b) client2.add_node(b) print(exp) with ExperimentManager(exp): exp.swap_in() exp.install_prototype() exp.bootstrap_prototype() storyboard.generate_script() storyboard.start() # Fetch the client/server logs from the nodes # and put them in the cwd. storyboard.fetch_logs()