| 1 | # Place all config file global variables. Eg. variables to be used as string interpolation |
| 2 | # for the rest of the file. |
| 3 | # |
| 4 | topdir = /Users/gbartlet/Research/TrafGen/ |
| 5 | datadir = /tmp |
| 6 | |
| 7 | [logging] |
| 8 | log_file = /tmp/fred |
| 9 | log_level = 1 |
| 10 | |
| 11 | [nodes] |
| 12 | |
| 13 | [[isi.deterlab.net]] |
| 14 | gateway = users.isi.deterlab.net |
| 15 | username = gbartlet |
| 16 | nodes = n1, n2, r1 |
| 17 | |
| 18 | [[isi.edu]] |
| 19 | nodes = steel |
| 20 | username = gbartlet |
| 21 | |
| 22 | [[usc.edu]] |
| 23 | nodes = hpc |
| 24 | username = gbartlet |
| 25 | |
| 26 | |
| 27 | [groups] |
| 28 | # In this section we define how we group the hosts defined in the 'nodes' section. |
| 29 | # Group names can be anything as long as they are only are comprised of nothing but |
| 30 | # alphanumeric characters, plus the underscore character. Eg. "my_hosts3" or "web_servers". |
| 31 | # |
| 32 | # Groups definitions can be nested, up to a default of 3 nestings. |
| 33 | # |
| 34 | # Groups may be modified and added to by blocks in the 'resource allocation' section. |
| 35 | # |
| 36 | # If you are using blocks which will fill in group members for you, |
| 37 | # it's ok to leave a group name blank. (eg. "my_group_x = ") |
| 38 | group6 = group3, host5, localhost, localhost, localhost, localhost, localhost, localhost, group3, hos |
| 39 | group1 = n1.click-test.trafgen.isi.deterlab.net |
| 40 | group2 = group1, host2 |
| 41 | group3 = group2, host6 |
| 42 | my_group_x = |
| 43 | |
| 44 | [extraction] |
| 45 | order = blah2 |
| 46 | actions = none |
| 47 | [[blah2]] |
| 48 | def = ${topdir}/alias/legoTGinterface.py |
| 49 | |
| 50 | [resource allocation] |
| 51 | order = blah |
| 52 | actions = none |
| 53 | [[blah]] |
| 54 | |
| 55 | [experiment] |
| 56 | # First we use the keyword 'order' to define the order of precidence |
| 57 | # that blocks should be called in. |
| 58 | order = alias |
| 59 | |
| 60 | # Actions which define an experiment and the order these are called in. |
| 61 | # |
| 62 | # Default is "install, setup, test, status, start, status" |
| 63 | # |
| 64 | |
| 65 | actions = install, setup, test, status |
| 66 | # In the following subsections (eg. [[ ]]) we give the block names (which can be anything) |
| 67 | # and where to find the interface file (keyword 'def') and which target groups or hosts |
| 68 | # this block will be run on (keyword 'target'). |
| 69 | # |
| 70 | # Note that multiple blocks can use the same interface definition file, but with different |
| 71 | # targets and variables. |
| 72 | # |
| 73 | # Each block needs a unique name. (eg. none of the names within the following [[ ]] brackets |
| 74 | # should be the same. |
| 75 | # |
| 76 | # Needs lists the files which the block depends on. This list is checked to make sure |
| 77 | # these files have been created by the appropriate block. |
| 78 | # |
| 79 | # |
| 80 | # The [[[variables]]] section of each block is optional. Variable names should match |
| 81 | # the class variable names in the interface file specified in 'def'. |
| 82 | # |
| 83 | [[alias]] |
| 84 | filename = FRED |
| 85 | def = ${topdir}/alias/legoTGinterface.py |
| 86 | target = group1 |
| 87 | needs = ${datadir}/frank/%host.ips |
| 88 | creates = ${datadir}/frank/%host.out, $filename |
| 89 | |
| 90 | [[[input]]] |
| 91 | my_var = value2 |
| 92 | |
| 93 | [[alias two]] |
| 94 | def = ${topdir}/alias/legoTGinterface.py |
| 95 | target = group1 |
| 96 | |
| 97 | [[[input]]] |
| 98 | my_var = stuff |
| 99 | |
| 100 | [[route]] |
| 101 | def = ${topdir}/route/legoTGinterface.py |
| 102 | target = group1 |
| 103 | |
| 104 | [[[input]]] |
| 105 | |