| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This updates the copyright on the license headers to that it is
extended to the current year.
|
|
|
|
|
| |
This reorganizes the documentation somewhat to be more
tutorial-styled.
|
|
|
|
|
| |
Changed `rumba.model` into a namespace, moved business logic inside
the rumba.elements package
|
|
|
|
|
|
|
|
|
| |
Also:
+ small docstring fixes in model
+ docstring fixes in log
+ log refactoring
+ other small refactoring
+ some small documentation fixes
|
|
|
|
|
|
| |
This adds docstrings to the model so that Sphinx can parse them. It
also adds some changes to the rst files and conf.py so that inherited
members are shown and special members are not.
|
|
|
|
|
| |
This adds docstrings for methods of in the testbeds, prototypes and
certain things in the model.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Also add overloading in LinkQuality constructor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the ability to assign delay and loss to links.
4 new object types are introduced:
- LinkQuality
- Delay
- Loss
- Rate
All attributes are read-only, one attribute link_quality is added to the
ShimEthDIF with a callback to the LinkQualityManager which will automatically
apply a new link_quality profile when this attribute is written.
|
|
|
|
|
| |
+ manage spaces in server and client ap when building id
+ fix typo in node.fetch_file
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for a testbed based on Docker containers running on
the local host. Bridging the containers can be done using built-in
Linux bridging or using OpenVSwitch bridges.
A new resource 'executor' has been added to abstract away command
execution on nodes on the testbed. Executors have been created for
local command execution, docker exec based command execution and
SSH-based command execution. This has also been changed in the
prototypes to execute using the correct executor.
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
implements #27
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds local Ouroboros support in case of a fake testbed (i.e. no
resources allocated). A next PR will abstract away the mode of
communication with the testbed, since the Docker plugin will also need
it.
This also adds another function to the model, terminate_prototype,
which should clean up the prototype gracefully, or can be skipped
depending on the testbed.
Currently the ouroboros plugin with the fake testbed needs to be run
as root. If there is a way to run the command as root in the
background and then clean it up properly, I would be happy to know
how.
|
|
|
|
|
| |
Implements #39.
Also updated examples.
|
|
|
|
|
|
|
|
| |
This commit adds the fields necessary to specify the paths and
folders related to system logs and prototype logs and
fetching them.
Defaults are introduced and specific paths for rlite & qemu
|
|
|
|
|
|
| |
This adds two extra parameters to the Experiment class, so that users
can specify their custom repositories and branches for testing new
features.
|
|
|
|
|
|
| |
This adds a check to see that the number of members in the ShimEthDIF
class is not exceeded by two, since it is currently not supported by
Rumba.
|
|
|
|
|
|
|
| |
This measures the time for every public function of the Experiment
class and logs them.
Fixes #40
|
| |
|
|
|
|
|
|
|
|
| |
+ 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
|
|
|
|
|
| |
This uses a saner name for multiprocessing_utils and adds some
licenses where they were missing and adds Dimitri as author.
|
|
|
|
|
|
|
| |
This adds parallel installation for IRATI, it also adds support for
multithread/multiprocess logging. Furthermore prototype-agnostic
utilities for multiprocessing have been added. Caching of clients has
been re-enabled for the ssh connections.
|
|
|
|
|
| |
This adds a run_command method to allow experimenters to execute a
single command at a give time on a specified node.
|
|
|
|
|
|
|
| |
Enrollments were performed together before connection setup was
performed in lower rank DIFs, which caused IPCPs of N+1 DIFs to enroll
over DIFs that had no data transfer connectivity. Enrollment and
connection establishment are now performed per-DIF to solve this.
|
|
|
|
|
|
| |
This adds persistent SSH connections to Rumba. A new SSH client will
be opened for every node in the experiment, which is closed after all
experimentation is done.
|
|
|
|
|
|
| |
This uses the native paramiko API for proxycommands instead of
invoking OpenSSH on the host after connecting to it since that gives
race conditons with Paramiko.
|
|
|
|
|
|
|
|
|
|
| |
Allows setting the attribute machine_type="virtual" for experiment
nodes. If the attribute is set to something else than "virtual" a bare
metal machine will be selected. If the attribute is not set, the
default will be chosen from the jfed testbed. For the wall and
cloudlab, the default is physical machines, for the others, it's
virtual machines. This default can be overriden by setting the jfed
testbed attribute use_physical_machines to True or False.
|
| |
|
| |
|
|\
| |
| |
| |
| | |
model: Perform split between different flows
See merge request !64
|
| |
| |
| |
| |
| | |
This performs a split between enrollment, data transfer and management
flows.
|
|/
|
|
| |
This adds CI to Rumba.
|
|
|
|
|
| |
This makes the license headers uniform and adds the authors and a
copyright.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Temporary files such as ssh_info, the rspecs, logs, ... are now
created in /tmp/rumba to avoid too many files being created and never
removed. The VM images and jFed CLI are kept in ~/.cache/rumba to
avoid redownloading every reboot.
Closes #18, #19
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| | |
additional:
+ fixed small bug rlated to vhost checking in qemu.
+ example scripts now correctly use policies.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
+ Added policy class
+ Adapted NormalDIF class to use new policy class
+ NormalDIF constructor argument policy has changed format
(parameters dict is now mandatory, added empty dicts where it was not passed)
+ Added Node.policies field (type: dict[DIF -> Policy])
|
| | | |
|
| |/
|/| |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The proxy command was not added to the file generated with ssh
info. This adds it, and changes the access script to use it if it is
there.
|