aboutsummaryrefslogtreecommitdiff
path: root/doc/workflow.rst
blob: 04f23b125275a2a0bfb5b28e0298b573b825df5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Workflow
************************

1. Define the network graph, creating instances of model.Node and
   model.DIF classes.

2. Create an instance of a Testbed class.

3. Create an instance of the selected prototype.Experiment class,
   passing the testbed instance and a list of Node instances.

  1. At the end of the base Experiment constructor, the
     generate function is called to generate information about
     per-node IPCPs, registrations and enrollment, ready to be
     used by the plugins.

4. Call methods on the prototype.Experiment instance:

  1. swap_in() swaps the experiment in on the testbed, and fills in
     the missing information in the model.

  2. install_prototype() installs the chosen prototype on the
     testbed. Currently an Ubuntu image is assumed.

  3. bootstrap_prototype() calls a prototype-specific setup function,
     to create the required IPCPs, perform registrations,
     enrollments, etc.

  4. swap_out() swaps the experiment out of the testbed.

5. Run a Storyboard to emulate real network traffic.


Accessing nodes after swap-in
-----------------------------

To access a node once the experiment swapped in, use the following
command (in the same terminal where ssh-agent was run in case of jFed): ::

    $ rumba-access $NODE_NAME

Where $NODE_NAME is the name of the node to access. In case of the
QEMU testbed, the password of the downloaded buildroot images is
'root'.