aboutsummaryrefslogtreecommitdiff
path: root/rumba/storyboard.py
Commit message (Collapse)AuthorAgeFilesLines
* exp: Add metrics and prototype update commandsDimitri Staessens2021-07-181-0/+14
| | | | | | This adds a couple of commands to start/stop metrics exporter, set link rate on virtual wall, and updating the prototype from git, which is useful in interactive mode.
* storyboard: Allow run_command on multiple nodesDimitri Staessens2021-07-101-12/+17
| | | | | It can now take a list of node names. Also fixes sudo in ssh_support, which I accidentally broke in the previous commit.
* storyboard: Rename async to asynSander Vrijders2018-08-091-5/+5
| | | | | In Python 3.7, async is a reserved keyword, which caused Rumba to fail since we used async as a function parameter.
* storyboard: fix stringbuffer bugsMarco Capitani2018-07-131-2/+2
|
* prototypes: Fix bad layer namesSander Vrijders2018-06-071-3/+4
| | | | | | This fixes the layer names, since 'DIF X' was being passed instead of just 'X'. It also adds a bash command to startup.sh so that it is always executed as a bash script.
* sb + our: add server_decorator functionality and our decoratorMarco Capitani2018-06-061-16/+24
|
* storyboard: Bind and register server name for OuroborosSander Vrijders2018-06-051-0/+6
| | | | | In case the experiment is done with the Ouroboros prototype, the name needs to be bound and registered on the node.
* storyboard: fix callback without args in ClientProcess.stop()Marco Capitani2018-06-051-3/+3
|
* tools: Add script to generate bandwidth graphsSander Vrijders2018-06-051-4/+1
| | | | | | This adds a script to generate bandwidth graphs from an exported bandwidth csv. It will color the nodes and links depending on the load and also adjust the thickness of the edges.
* storyboard: Add function to export flows statsSander Vrijders2018-06-051-0/+18
| | | | | | | | | | This adds a function to export the bytes sent by flows in a certain DIF. It is implemented within the storyboard, which calls an abstract function in the Experiment class so that every prototype can implement it in its own specific way. This commit adds the implementation for Ouroboros. It exports it to a csv, with the first item the source IPCP, the second the destination IPCP and then the bytes sent on the flow.
* storyboard: add async command executionMarco Capitani2018-06-041-31/+106
| | | | | | | | | The standard command execution function blocks until the command is complete. Even if the command is run in background on the node, this implies that the storyboard has to wait for the SSH handshake to complete and the responses to come back. With the new method, the storyboard will go on with the execution without waiting (callbacks can be registered for reacting).
* storyboard: Allow destroying of a DIFSander Vrijders2018-06-011-0/+16
| | | | | This allows the destroying of a DIF while the experiment is running. This to ease the emulation of failures in the network.
* storyboard: fix Event calling get_e_id alwaysMarco Capitani2018-05-091-53/+120
| | | | | | | | | | This fixes the behaviour of the Event class which would always call get_e_id and fail if the action is a pure function or not the method of a SBEntity. Now it will simply output a warning if the event is written (because it won't be readable as-is) On top of that, all DIFs are now scriptable, and some small fixes and cleanups.
* storyboard: add as_root in server and clientMarco Capitani2018-04-271-8/+24
| | | | fixes #52
* storyboard: parse action arg as int before parsing as floatMarco Capitani2018-04-241-10/+16
| | | | This allows argument to also be ints on top of floats
* rumba: Update copyright on license headersSander Vrijders2018-04-231-2/+2
| | | | | This updates the copyright on the license headers to that it is extended to the current year.
* storyboard: add/format docstringsMarco Capitani2018-03-291-158/+444
| | | | | | | | | Also: + small docstring fixes in model + docstring fixes in log + log refactoring + other small refactoring + some small documentation fixes
* testbeds, prototypes, model: Add docstringsSander Vrijders2018-03-281-6/+6
| | | | | This adds docstrings for methods of in the testbeds, prototypes and certain things in the model.
* model: make link quality changes scriptableMarco Capitani2018-03-281-8/+46
| | | | | | | | Added method accepting only ints and floats to allow scripting link quality changes (see example-script additions) Also added general purpose `sb.schedule_action` method
* storyboard: fix in fetch_logsMarco Capitani2018-03-281-9/+1
| | | | | Logs were fetched only from server and client nodes. Now all nodes are searched for logs.
* Merge branch 'master' into testingSander Vrijders2018-03-271-2/+8
|\
| * storyboard: fix for putting logs into paths based on node nameMarco Capitani2018-03-271-2/+8
| | | | | | | | fixes #43
* | model/sb: fix small bugsMarco Capitani2018-03-271-3/+11
| | | | | | | | | | + manage spaces in server and client ap when building id + fix typo in node.fetch_file
* | storyboard: install startup.sh in all nodesMarco Capitani2018-03-271-13/+6
| | | | | | | | | | | | | | Before storyboard installed the startup only on the client nodes (i.e. nodes marked in a Client class). Now Clients could be run outside of their nodes, hence the patch. Also, incidentally, fixes an issue with server log-files.
* | storyboard: Add capturing of trafficSander Vrijders2018-03-271-0/+34
| | | | | | | | | | | | | | | | | | This adds the functionality to capture traffic on certain interfaces so that it can be inspected with tools like wireshark. A user needs to pass a start and end time and a node and DIF. Rumba will then determine the correct interface to capture on. Implements #41
* | model: make DIFs scriptableMarco Capitani2018-03-261-6/+12
| | | | | | | | | | | | | | DIFs instances can now be referenced inside .rsb files. Also changed Node.set_link_state function to accept a DIF as opposed to an IPCP, since IPCPs are not given a name nor mentioned is user scripts.
* | storyboard: add callback parameter to run_client(_of) methodMarco Capitani2018-03-261-8/+29
| |
* | storyboard: make Script class privateMarco Capitani2018-03-261-60/+145
|/ | | | | | | | | The Script class has been made private as the script field of the Storyboard class. All script-related functions are now accessible as methods of the storyboard class. In other news: Made the script path in script-example.py pwd resilient.
* storyboard: Add link and node up and down eventsSander Vrijders2018-03-191-8/+52
| | | | | | | | | | This adds link and node up and down events to the storyboard, which can be called by a user on a specific time. The user needs to pass the time and the shim Ethernet for a link up or down event and a time and a node for the node up or down event. The interfaces in that layer or on that node will then be brought down. Implements #31
* storyboard: add replayabilityMarco Capitani2018-03-161-98/+661
| | | | implements #27
* utils & storyboard: add syslog retrieval functionalityMarco Capitani2018-02-271-6/+9
| | | | | Implements #39. Also updated examples.
* storyboard: re-added client applications loggingMarco Capitani2018-02-161-2/+3
|
* storyboard: re-add run_command methodMarco Capitani2018-01-111-39/+81
| | | | | | | | | Also: logging fix in ssh_support, Enabling changes: storyboard: refactor 'start' method, it was getting big some more minor storyboard refactoring for decoupling update examples to new syntax
* storyboard: recover run_command methodMarco Capitani2018-01-081-42/+55
|
* storyboard: fix bug with client durationMarco Capitani2017-12-061-7/+23
| | | | | + Fixes bug introduced in dbc7fd74d8b2c0bf3f2b8f2e81efba8ef2302c1c + implements minimum duration for clients (configurable, default 2 s)
* storyboard: force client to terminate within storyboard lifetimeMarco Capitani2017-12-061-4/+19
| | | | | Before, client could outlive the storyboard and consequently be killed abruptly, leading to ugly logs and more.
* storyboard: add logging and log retrievalMarco Capitani2017-11-171-10/+47
|
* storyboard: make Client shutdown an argumentMarco Capitani2017-11-171-27/+48
| | | | | Before the shutdown call for the Client/ClientProcess was fixed to kill <pid>. Now it's passed as an argument to the Client constructor.
* storyboard: decouple from experimentMarco Capitani2017-11-171-0/+306
+ Node no longer has "client" attribute + Client has a "nodes" attribute instead + servers, server nodes and the experiment can be added to a storyboard after instantiation to allow reuse of a SB + moved storyboard machinery to a separate module rumba.storyboard