| 93 | |
| 94 | == Composing Fragments == |
| 95 | |
| 96 | The simple composer is included in the fedd git repository as [source:fedd/compose.py]. It takes one or more fragment files as described above and produces an new fragment file in either xml or ns-2, suitable for passing to [FeddCommands#fedd_create.py fedd_create.py] or back to the composer. The compose command takes the following arguments: |
| 97 | |
| 98 | '''--help''':: |
| 99 | Display help text |
| 100 | '''--url''':: |
| 101 | The url of a running fedd that is willing to translate ns-2 to topdl/xml. {{{https://users.isi.deterlab.net:23235}}} will work. Not needed if all inputs are topdl/XML. |
| 102 | '''--multifile=''' ''file,number'':: |
| 103 | Include the given ''file'' in the composition ''number'' times. |
| 104 | '''--output=''' ''file'':: |
| 105 | Save the composed fragment in ''file''. The suffix of the file determines the output format, {{{tcl}}} or {{{ns}}} are saved as ns-2, and {{{topdl}}} or {{{xml}}} are topdl/XML. If this option is not given, the fragment goes to standard out as XML, though the '''---format''' option can set the output explicitly. |
| 106 | '''--format=''' ''format'': |
| 107 | Override the format of the output. Choices are: {{{tcl}}} or {{{ns}}} to output ns-2, and {{{topdl}}} or {{{xml}}} to output topdl/XML. |
| 108 | '''--add_testbeds''':: |
| 109 | Add a testbed attribute to each component. Each view of the multi-party experiment is instantiated in a separate testbed. If this option is given, the same testbed attribute is assigned to each node in each fragment. All the nodes in the first fragment are assigned to {{{testbed000}}} all in the second to {{{testbed001}}}, etc. |
| 110 | '''--output_testbeds''':: |
| 111 | Include testbed assignments in the output fragment. |
| 112 | '''--lax''':: |
| 113 | Do not return an error if all required constraints cannot be met. |
| 114 | '''--same_node''':: |
| 115 | Allow loops to the same node in the output topology. (Default is off) |
| 116 | '''--same_topology''':: |
| 117 | Allow nodes in the same fragment to satisfy each others constraints. (Default is off) |
| 118 | '''--same_pair''':: |
| 119 | Allow multiple links between the same two nodes in different topologies to be created. (Default is off) |
| 120 | '''--seed=''' ''number'':: |
| 121 | Seed the random number generator. |
| 122 | '''--certfile=''' ''file'':: |
| 123 | Load a fedid from ''file'' for ns-2 to topdl translations. Ususally not needed. |
| 124 | ''--config=''' ''config'':: |
| 125 | Take the options from ''file'' in the format below. |
| 126 | |
| 127 | === Configuration File === |
| 128 | |
| 129 | The composer has many options, and invocations that use only options can be long. To simplify matters, a simple key/value configuration file can be used. The |
| 130 | |