| 22 | == Command Line == |
| 23 | |
| 24 | These scripts make up the command line interface to the federation system. They remain the most versatile and powerful way to create and manage federated experiments. Most of these commands communicate with the experiment controller through either a SOAP or XMLRPC interface to carry out their functions. |
| 25 | |
| 26 | All these programs will print a summary of their arguments if given the '''--help''' argument. Though all accept the '''--url''' option, that value is more easily set by setting the '''FEDD_URL''' environment variable. |
| 27 | |
| 28 | All are installed in {{{/usr/local/bin}}} by default. |
| 29 | |
| 30 | All the command line tools accept the following arguments: |
| 31 | |
| 32 | '''--cert='''''filename'':: |
| 33 | Certificate from which to derive the user's [FeddAbout#GlobalIdentifiers:Fedids fedid]. By default the contents of `.ssl/emulab.pem` in the user's home directory is used. |
| 34 | '''--debug''':: |
| 35 | Produce additional debugging output. |
| 36 | '''--serializeOnly''':: |
| 37 | Do not contact the `fedd`, but just print the SOAP or XMLRPC message to the standard output. |
| 38 | '''--trusted='''''filename'':: |
| 39 | Use the certificates in ''filename'' as certificate authorities to confirm the server's identity. Optional. |
| 40 | '''--url='''''fedd_url''':: |
| 41 | Fedd to contact. If this is not given, the contents of the '''FEDD_URL''' environment variable is used. |
| 42 | '''--transport=[xmlrpc|soap]''':: |
| 43 | Use the given encoding of the service request. |
| 44 | '''--trace''':: |
| 45 | Print the SOAP exchanges to stderr. Currently only the SOAP transport is supported. |
| 46 | |
| 47 | === fedd_create.py === |
| 48 | |
| 49 | This command creates a federated experiment from an experiment description. It does the equivalent of a call to [FeddCommands#fedd_new.py fedd_new.py] to make an allocation and then attaches resources and services as described in the description file. On completion it returns the name of the experiment, and if requested using the '''--experiment_cert''' parameter, a certificate that grants access to the experiment. |
| 50 | |
| 51 | When `fedd_create.py` returns, the experiment has not yet fully been created, it is simply in progress. Users can poll the experiment controller by issuing [FeddCommands#fedd_multistatus.py fedd_multistatus.py] commands or wait for the experiment to be instantiated using [FeddCommands#fedd_spewlog.py fedd_spewlog.py]. |
| 52 | |
| 53 | `fedd_create.py` takes the following arguments: |
| 54 | |
| 55 | '''--active='''''testbedname''':: |
| 56 | Tell the experiment controller that ''testbedname'' prefers to initiate connections from its portal nodes |
| 57 | '''--experiment_cert='''''filename'':: |
| 58 | Store the certificate used to access the resulting experiment in ''filename''. This certificate can be used as an input parameter to the terminate and informational commands below, but is an output parameter here. |
| 59 | '''--experiment_name='''''exp_name'':: |
| 60 | Suggest ''exp_name'' to the `fedd` as a local identifier for the federated experiment. The actual local name chosen will be returned from the command. |
| 61 | '''--file='''''filename'':: |
| 62 | File containing the [FeddAbout#ExperimentDescriptions experiment description]. |
| 63 | '''--project='''''export_project'':: |
| 64 | The local project to export from the master testbed. |
| 65 | '''--map='''''spec'':: |
| 66 | Map a testbed identifier in the experiment description into a URI for its access controller. Format for ''spec'' is testbed_id:access_uri. For example, '''--map=deter:http://localhost:11123''' will try to install nodes in the experiment description with a label of "deter" on to the controller at !http://localhost:11123 . A node label is usually set with the {{{tb-set-node-testbed}}} command in the description. |
| 67 | '''--master='''''master_testbed'':: |
| 68 | The master testbed. This should correspond to one of the annotations used for testbed names in the experiment. The `fedd` will use its [FeddDatabases#ExperimentNameMappingDB experiment name mapping DB] to resolve that name to a testbed. |
| 69 | '''--service='''''spec'':: |
| 70 | Add the given [FeddAbout#ExperimentServices service] to the experiment being created. This parameter may be specified multiple times. ''Spec'' has the format: |
| 71 | {{{ |
| 72 | name:exporter:importer1,importer2:attribute1=value1;attribute2=value2 |
| 73 | }}} |
| 74 | Names are specified in the [FeddAbout#ExperimentServices discussion of services in the overview]. |
| 75 | |
| 76 | === fedd_ftopo.py === |
| 77 | |
| 78 | Returns a mapping between the virtual element names in the [FeddAbout#ExperimentDescriptions experiment description] and a physical name that can be used to access the resource. Right now all the plug-ins that return such a mapping return a DNS name as the physical name. |
| 79 | |
| 80 | `fedd_ftopo.py` takes the following parameters in addition to the standard ones: |
| 81 | |
| 82 | '''--experiment_cert='''''filename'':: |
| 83 | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
| 84 | '''--experiment_name='''''name'':: |
| 85 | The local name of the experiment to query. Only the experiment creator can use this for access. |
| 86 | |
| 87 | The output has the format: |
| 88 | {{{ |
| 89 | element_name:physical_name:testbed |
| 90 | }}} |
| 91 | |
| 92 | === fedd_image.py === |
| 93 | |
| 94 | `fedd_image.py` creates visualizations of federated experiments at a box and lines level, showing the interconnections between elements. The visualizations can be generated from an active federated experiment, a [FeddPluginArchitecture#TopologyDescriptionLanguage topdl] description, or an ns2 description. `fedd-image.py` calls out to graphviz's `neato` program to draw the graphs, so it or a compatible program must be available. |
| 95 | |
| 96 | Internally, the various representations are converted to topdl and from there into the `neato` specification. An active experiment's topdl description must be pulled frmo teh experiment controller it was created on and a local ns2 description must be translated by a fedd into topdl. Topdl descriptions can be drawn without contacting a fedd. |
| 97 | |
| 98 | `fedd_image.py` takes the following arguments in addition to the standard ones: |
| 99 | |
| 100 | '''--experiment_cert='''''filename'':: |
| 101 | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
| 102 | '''--experiment_name='''''name'':: |
| 103 | The local name of the experiment to query. Only the experiment creator can use this for access. |
| 104 | '''--file='''''filename'':: |
| 105 | File containing the [FeddAbout#ExperimentDescriptions experiment description]. |
| 106 | '''--format='''''fmt'':: |
| 107 | The image format to use. Valid choices are '''jpg''', '''png''', '''svg''', and '''dot'''. '''dot''' is graphviz input. |
| 108 | '''--labels''':: |
| 109 | Include node names and IP address information in the image. This is the default. |
| 110 | '''--no_labels''':: |
| 111 | Omit node names and IP address information in the image. |
| 112 | '''--output='''''file'':: |
| 113 | A file to store the image in. If '''--format''' is given, otherwise the last three characters of the filename are taken as a '''--format''' specification. |
| 114 | '''--pixels='''''pix'':: |
| 115 | Output an image that is ''pix'' pixels, square. |
| 116 | '''--group='''''attribute'':: |
| 117 | Group nodes by an attribute attached to them and outline them in the output. This may be given more than once. |
| 118 | '''--program='''''path'':: |
| 119 | A `neato` compatible program to draw the graph. This may be helpful if graphviz is installed in a non-standard place or with a non-standard name. |
| 120 | |
| 121 | === fedd_info.py === |
| 122 | |
| 123 | This program provides various information about running (or failed) federated experiments. Many of the types of data it can return are accessible in more user-friendly ways by other commands. It is largely used for debugging. |
| 124 | |
| 125 | The data types accessible are: |
| 126 | |
| 127 | '''id''':: |
| 128 | The local name and [FeddAbout#GlobalIdentifiers:Fedids fedid] of this experiment. Just the fedid is returned, not a certificate representing it, or its key. |
| 129 | '''embedding''':: |
| 130 | A raw format of the information returned by [FeddCommands#fedd_ftopo.py]. Unless you're debugging `fedd_ftopo.py` we suggest that program. |
| 131 | '''experimentdescription''':: |
| 132 | A [FeddPluginArchitecture#TopologyDescriptionLanguage topdl] description of the global virtual topology of this experiment. Portal nodes and other elements that are transparent to the experiment (and potentially unknown to the experiment controller) are omitted. |
| 133 | '''log''':: |
| 134 | The experiment controller log from the experiment's creation or failed creation attempt. |
| 135 | '''status''':: |
| 136 | The experiment status. See below for details. |
| 137 | '''vtopo''':: |
| 138 | '''vis''':: |
| 139 | Emulab compatible descriptions of the virtual topology and visualization of the experiment. These are used to debug these compatibility interfaces. |
| 140 | |
| 141 | An experiment's status can be one of the following values: |
| 142 | |
| 143 | '''active''':: |
| 144 | The experiment has resources allocated to it and has been successfully configured. |
| 145 | '''empty''':: |
| 146 | The experiment exists, but no attempt has been made to attach resources to it. |
| 147 | '''failed''':: |
| 148 | The experiment could not be started. This state allows users to retrieve logs and federant information from failed experiments. Once information is retrieved, this experiment should be terminated. |
| 149 | '''starting''':: |
| 150 | The experiment is having resources allocated and elements configured. |
| 151 | '''terminating''':: |
| 152 | The experiment is being terminated. |
| 153 | |
| 154 | `fedd_info.py` takes the standard arguments and: |
| 155 | |
| 156 | '''--experiment_cert='''''filename'':: |
| 157 | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
| 158 | '''--experiment_name='''''name'':: |
| 159 | The local name of the experiment to query. Only the experiment creator can use this for access. |
| 160 | '''--data='''''sel'':: |
| 161 | Print the data given by ''sel'', which can be any of the values above. The '''--data''' argument may be specified multiple times. |
| 162 | |
| 163 | === fedd_multiinfo.py === |
| 164 | |
| 165 | `fedd_multiinfo.py` is a batch version of [FeddCommands#fedd_info.py fedd_info.py] that returns the selected data for all experiments that the caller can access. It takes the standard arguments and a '''---data='''''sel'' argument that has the same meaning as for `fedd_info.py`. |
| 166 | |
| 167 | === fedd_multistatus.py === |
| 168 | |
| 169 | `fedd_multistatus.py` provides a summary of status information for all experiments that the caller can access. It takes the standard arguments. Output is one line per experiment of the form: |
| 170 | |
| 171 | {{{ |
| 172 | local_name:fedid:status |
| 173 | }}} |
| 174 | |
| 175 | === fedd_new.py === |
| 176 | |
| 177 | This command creates an experiment but does not attach any resources to it. This is currently not very useful, but will become useful in the future. It takes the standard arguments and: |
| 178 | |
| 179 | '''--experiment_cert='''''filename'':: |
| 180 | Store the certificate used to access the resulting experiment in ''filename''. This certificate can be used as an input parameter to the terminate and informational commands below, but is an output parameter here. |
| 181 | '''--experiment_name='''''exp_name'':: |
| 182 | Suggest ''exp_name'' to the `fedd` as a local identifier for the federated experiment. The actual local name chosen will be returned from the command. |
| 183 | |
| 184 | === fedd_ns2topdl.py === |
| 185 | |
| 186 | Translates an ns2 experiment description into a [FeddPluginArchitecture#TopologyDescriptionLanguage topdl] one. It takes standard arguments as well as: |
| 187 | |
| 188 | '''--file='''''filename'':: |
| 189 | File containing the [FeddAbout#ExperimentDescriptions experiment description]. |
| 190 | '''--output='''''file'':: |
| 191 | A file to store the result. |
| 192 | |
| 193 | === fedd_spewlog.py === |
| 194 | |
| 195 | This command waits for an experiment to finish being created and prints its status. As the creation log is updated, that log is printed to standard out. The result is a running view of the progress of the experiment's creation until it succeeds or fails. Because it is the experiment controller's log, it is less informative of the process on federants until they succeed or fail. |
| 196 | |
| 197 | It takes the standard parameters and: |
| 198 | |
| 199 | '''--experiment_cert='''''filename'':: |
| 200 | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
| 201 | '''--experiment_name='''''name'':: |
| 202 | The local name of the experiment to query. Only the experiment creator can use this for access. |
| 203 | '''--logfile='''''path'':: |
| 204 | A file to store the log in rather than printing to the standard output |
| 205 | '''--update_time='''''secs'':: |
| 206 | Time between updates of the log. The experiment controller is queried for each update. |
| 207 | |
| 208 | === fedd_terminate.py === |
| 209 | |
| 210 | Deallocate resources from an experiment and remove the experiment structures from the experiment controller. It takes the standard arguments and: |
| 211 | |
| 212 | '''--experiment_cert='''''filename'':: |
| 213 | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
| 214 | '''--experiment_name='''''name'':: |
| 215 | The local name of the experiment to query. Only the experiment creator can use this for access. |
| 216 | '''--force''':: |
| 217 | Remove the experiment if at all possible. Experiments in '''starting''' or '''terminating''' states cannot be terminated without this option. |
| 218 | '''--logfile='''''path'':: |
| 219 | A file to store the log in rather than printing to the standard output. |
| 220 | '''--print_log''':: |
| 221 | Print a log of the experiment controllers actions. |
| 222 | |
| 223 | === fedd_client.py === |
| 224 | |
| 225 | The `fedd_client.py` command was the original command line interface to most of `fedd`'s interfaces. It has been superceded by the individual scripts above. There are one or two functions it still provides, but these are very specialized debugging functions, and most users will not need it. |
| 226 | |
| 227 | === fedid.py === |
| 228 | |
| 229 | The `fedid.py` command prints the [FeddAuthorizationArchitecture#Globalidentifiers:Fedids fedid] of the public key of an X.509 certificate to the standard output. This is handy in getting fedids for the various [FeddDatabases databases] that `fedd` uses. The command is invoked with 0 or more '''--attribute='''''attr'' parameters and 0 or more filenames. The command prints the fedids and the attributes in the format of a [FeddDatabases#GlobalAccessDB global access database] and can be used directly to construct those files. For example, this invocation: |
| 230 | |
| 231 | {{{ |
| 232 | $ fedid.py --attribute=split --attribute=allocate fedd.pem deterboss.pem |
| 233 | }}} |
| 234 | |
| 235 | produces |
| 236 | |
| 237 | {{{ |
| 238 | fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea split,allocate |
| 239 | fedid:9b8e7f2b114956ad516befc93fa7e7eae3751bf9 split,allocate |
| 240 | }}} |
217 | | == Command Line == |
218 | | |
219 | | These scripts make up the command line interface to the federation system. They remain the most versatile and powerful way to create and manage federated experiments. Most of these commands communicate with the experiment controller through either a SOAP or XMLRPC interface to carry out their functions. |
220 | | |
221 | | All these programs will print a summary of their arguments if given the '''--help''' argument. Though all accept the '''--url''' option, that value is more easily set by setting the '''FEDD_URL''' environment variable. |
222 | | |
223 | | All are installed in {{{/usr/local/bin}}} by default. |
224 | | |
225 | | All the command line tools accept the following arguments: |
226 | | |
227 | | '''--cert='''''filename'':: |
228 | | Certificate from which to derive the user's [FeddAbout#GlobalIdentifiers:Fedids fedid]. By default the contents of `.ssl/emulab.pem` in the user's home directory is used. |
229 | | '''--debug''':: |
230 | | Produce additional debugging output. |
231 | | '''--serializeOnly''':: |
232 | | Do not contact the `fedd`, but just print the SOAP or XMLRPC message to the standard output. |
233 | | '''--trusted='''''filename'':: |
234 | | Use the certificates in ''filename'' as certificate authorities to confirm the server's identity. Optional. |
235 | | '''--url='''''fedd_url''':: |
236 | | Fedd to contact. If this is not given, the contents of the '''FEDD_URL''' environment variable is used. |
237 | | '''--transport=[xmlrpc|soap]''':: |
238 | | Use the given encoding of the service request. |
239 | | '''--trace''':: |
240 | | Print the SOAP exchanges to stderr. Currently only the SOAP transport is supported. |
241 | | |
242 | | === fedd_create.py === |
243 | | |
244 | | This command creates a federated experiment from an experiment description. It does the equivalent of a call to [FeddCommands#fedd_new.py fedd_new.py] to make an allocation and then attaches resources and services as described in the description file. On completion it returns the name of the experiment, and if requested using the '''--experiment_cert''' parameter, a certificate that grants access to the experiment. |
245 | | |
246 | | When `fedd_create.py` returns, the experiment has not yet fully been created, it is simply in progress. Users can poll the experiment controller by issuing [FeddCommands#fedd_multistatus.py fedd_multistatus.py] commands or wait for the experiment to be instantiated using [FeddCommands#fedd_spewlog.py fedd_spewlog.py]. |
247 | | |
248 | | `fedd_create.py` takes the following arguments: |
249 | | |
250 | | '''--active='''''testbedname''':: |
251 | | Tell the experiment controller that ''testbedname'' prefers to initiate connections from its portal nodes |
252 | | '''--experiment_cert='''''filename'':: |
253 | | Store the certificate used to access the resulting experiment in ''filename''. This certificate can be used as an input parameter to the terminate and informational commands below, but is an output parameter here. |
254 | | '''--experiment_name='''''exp_name'':: |
255 | | Suggest ''exp_name'' to the `fedd` as a local identifier for the federated experiment. The actual local name chosen will be returned from the command. |
256 | | '''--file='''''filename'':: |
257 | | File containing the [FeddAbout#ExperimentDescriptions experiment description]. |
258 | | '''--project='''''export_project'':: |
259 | | The local project to export from the master testbed. |
260 | | '''--map='''''spec'':: |
261 | | Map a testbed identifier in the experiment description into a URI for its access controller. Format for ''spec'' is testbed_id:access_uri. For example, '''--map=deter:http://localhost:11123''' will try to install nodes in the experiment description with a label of "deter" on to the controller at !http://localhost:11123 . A node label is usually set with the {{{tb-set-node-testbed}}} command in the description. |
262 | | '''--master='''''master_testbed'':: |
263 | | The master testbed. This should correspond to one of the annotations used for testbed names in the experiment. The `fedd` will use its [FeddDatabases#ExperimentNameMappingDB experiment name mapping DB] to resolve that name to a testbed. |
264 | | '''--service='''''spec'':: |
265 | | Add the given [FeddAbout#ExperimentServices service] to the experiment being created. This parameter may be specified multiple times. ''Spec'' has the format: |
266 | | {{{ |
267 | | name:exporter:importer1,importer2:attribute1=value1;attribute2=value2 |
268 | | }}} |
269 | | Names are specified in the [FeddAbout#ExperimentServices discussion of services in the overview]. |
270 | | |
271 | | === fedd_ftopo.py === |
272 | | |
273 | | Returns a mapping between the virtual element names in the [FeddAbout#ExperimentDescriptions experiment description] and a physical name that can be used to access the resource. Right now all the plug-ins that return such a mapping return a DNS name as the physical name. |
274 | | |
275 | | `fedd_ftopo.py` takes the following parameters in addition to the standard ones: |
276 | | |
277 | | '''--experiment_cert='''''filename'':: |
278 | | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
279 | | '''--experiment_name='''''name'':: |
280 | | The local name of the experiment to query. Only the experiment creator can use this for access. |
281 | | |
282 | | The output has the format: |
283 | | {{{ |
284 | | element_name:physical_name:testbed |
285 | | }}} |
286 | | |
287 | | === fedd_image.py === |
288 | | |
289 | | `fedd_image.py` creates visualizations of federated experiments at a box and lines level, showing the interconnections between elements. The visualizations can be generated from an active federated experiment, a [FeddPluginArchitecture#TopologyDescriptionLanguage topdl] description, or an ns2 description. `fedd-image.py` calls out to graphviz's `neato` program to draw the graphs, so it or a compatible program must be available. |
290 | | |
291 | | Internally, the various representations are converted to topdl and from there into the `neato` specification. An active experiment's topdl description must be pulled frmo teh experiment controller it was created on and a local ns2 description must be translated by a fedd into topdl. Topdl descriptions can be drawn without contacting a fedd. |
292 | | |
293 | | `fedd_image.py` takes the following arguments in addition to the standard ones: |
294 | | |
295 | | '''--experiment_cert='''''filename'':: |
296 | | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
297 | | '''--experiment_name='''''name'':: |
298 | | The local name of the experiment to query. Only the experiment creator can use this for access. |
299 | | '''--file='''''filename'':: |
300 | | File containing the [FeddAbout#ExperimentDescriptions experiment description]. |
301 | | '''--format='''''fmt'':: |
302 | | The image format to use. Valid choices are '''jpg''', '''png''', '''svg''', and '''dot'''. '''dot''' is graphviz input. |
303 | | '''--labels''':: |
304 | | Include node names and IP address information in the image. This is the default. |
305 | | '''--no_labels''':: |
306 | | Omit node names and IP address information in the image. |
307 | | '''--output='''''file'':: |
308 | | A file to store the image in. If '''--format''' is given, otherwise the last three characters of the filename are taken as a '''--format''' specification. |
309 | | '''--pixels='''''pix'':: |
310 | | Output an image that is ''pix'' pixels, square. |
311 | | '''--group='''''attribute'':: |
312 | | Group nodes by an attribute attached to them and outline them in the output. This may be given more than once. |
313 | | '''--program='''''path'':: |
314 | | A `neato` compatible program to draw the graph. This may be helpful if graphviz is installed in a non-standard place or with a non-standard name. |
315 | | |
316 | | === fedd_info.py === |
317 | | |
318 | | This program provides various information about running (or failed) federated experiments. Many of the types of data it can return are accessible in more user-friendly ways by other commands. It is largely used for debugging. |
319 | | |
320 | | The data types accessible are: |
321 | | |
322 | | '''id''':: |
323 | | The local name and [FeddAbout#GlobalIdentifiers:Fedids fedid] of this experiment. Just the fedid is returned, not a certificate representing it, or its key. |
324 | | '''embedding''':: |
325 | | A raw format of the information returned by [FeddCommands#fedd_ftopo.py]. Unless you're debugging `fedd_ftopo.py` we suggest that program. |
326 | | '''experimentdescription''':: |
327 | | A [FeddPluginArchitecture#TopologyDescriptionLanguage topdl] description of the global virtual topology of this experiment. Portal nodes and other elements that are transparent to the experiment (and potentially unknown to the experiment controller) are omitted. |
328 | | '''log''':: |
329 | | The experiment controller log from the experiment's creation or failed creation attempt. |
330 | | '''status''':: |
331 | | The experiment status. See below for details. |
332 | | '''vtopo''':: |
333 | | '''vis''':: |
334 | | Emulab compatible descriptions of the virtual topology and visualization of the experiment. These are used to debug these compatibility interfaces. |
335 | | |
336 | | An experiment's status can be one of the following values: |
337 | | |
338 | | '''active''':: |
339 | | The experiment has resources allocated to it and has been successfully configured. |
340 | | '''empty''':: |
341 | | The experiment exists, but no attempt has been made to attach resources to it. |
342 | | '''failed''':: |
343 | | The experiment could not be started. This state allows users to retrieve logs and federant information from failed experiments. Once information is retrieved, this experiment should be terminated. |
344 | | '''starting''':: |
345 | | The experiment is having resources allocated and elements configured. |
346 | | '''terminating''':: |
347 | | The experiment is being terminated. |
348 | | |
349 | | `fedd_info.py` takes the standard arguments and: |
350 | | |
351 | | '''--experiment_cert='''''filename'':: |
352 | | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
353 | | '''--experiment_name='''''name'':: |
354 | | The local name of the experiment to query. Only the experiment creator can use this for access. |
355 | | '''--data='''''sel'':: |
356 | | Print the data given by ''sel'', which can be any of the values above. The '''--data''' argument may be specified multiple times. |
357 | | |
358 | | === fedd_multiinfo.py === |
359 | | |
360 | | `fedd_multiinfo.py` is a batch version of [FeddCommands#fedd_info.py fedd_info.py] that returns the selected data for all experiments that the caller can access. It takes the standard arguments and a '''---data='''''sel'' argument that has the same meaning as for `fedd_info.py`. |
361 | | |
362 | | === fedd_multistatus.py === |
363 | | |
364 | | `fedd_multistatus.py` provides a summary of status information for all experiments that the caller can access. It takes the standard arguments. Output is one line per experiment of the form: |
365 | | |
366 | | {{{ |
367 | | local_name:fedid:status |
368 | | }}} |
369 | | |
370 | | === fedd_new.py === |
371 | | |
372 | | This command creates an experiment but does not attach any resources to it. This is currently not very useful, but will become useful in the future. It takes the standard arguments and: |
373 | | |
374 | | '''--experiment_cert='''''filename'':: |
375 | | Store the certificate used to access the resulting experiment in ''filename''. This certificate can be used as an input parameter to the terminate and informational commands below, but is an output parameter here. |
376 | | '''--experiment_name='''''exp_name'':: |
377 | | Suggest ''exp_name'' to the `fedd` as a local identifier for the federated experiment. The actual local name chosen will be returned from the command. |
378 | | |
379 | | === fedd_ns2topdl.py === |
380 | | |
381 | | Translates an ns2 experiment description into a [FeddPluginArchitecture#TopologyDescriptionLanguage topdl] one. It takes standard arguments as well as: |
382 | | |
383 | | '''--file='''''filename'':: |
384 | | File containing the [FeddAbout#ExperimentDescriptions experiment description]. |
385 | | '''--output='''''file'':: |
386 | | A file to store the result. |
387 | | |
388 | | === fedd_spewlog.py === |
389 | | |
390 | | This command waits for an experiment to finish being created and prints its status. As the creation log is updated, that log is printed to standard out. The result is a running view of the progress of the experiment's creation until it succeeds or fails. Because it is the experiment controller's log, it is less informative of the process on federants until they succeed or fail. |
391 | | |
392 | | It takes the standard parameters and: |
393 | | |
394 | | '''--experiment_cert='''''filename'':: |
395 | | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
396 | | '''--experiment_name='''''name'':: |
397 | | The local name of the experiment to query. Only the experiment creator can use this for access. |
398 | | '''--logfile='''''path'':: |
399 | | A file to store the log in rather than printing to the standard output |
400 | | '''--update_time='''''secs'':: |
401 | | Time between updates of the log. The experiment controller is queried for each update. |
402 | | |
403 | | === fedd_terminate.py === |
404 | | |
405 | | Deallocate resources from an experiment and remove the experiment structures from the experiment controller. It takes the standard arguments and: |
406 | | |
407 | | '''--experiment_cert='''''filename'':: |
408 | | The ''filename'' must contain a certificate valid for the experiment's fedid. If so it is used to authenticate access to the experiment. A password may be required if one has been added to the private key. |
409 | | '''--experiment_name='''''name'':: |
410 | | The local name of the experiment to query. Only the experiment creator can use this for access. |
411 | | '''--force''':: |
412 | | Remove the experiment if at all possible. Experiments in '''starting''' or '''terminating''' states cannot be terminated without this option. |
413 | | '''--logfile='''''path'':: |
414 | | A file to store the log in rather than printing to the standard output. |
415 | | '''--print_log''':: |
416 | | Print a log of the experiment controllers actions. |
417 | | |
418 | | === fedd_client.py === |
419 | | |
420 | | The `fedd_client.py` command was the original command line interface to most of `fedd`'s interfaces. It has been superceded by the individual scripts above. There are one or two functions it still provides, but these are very specialized debugging functions, and most users will not need it. |
421 | | |
422 | | === fedid.py === |
423 | | |
424 | | The `fedid.py` command prints the [FeddAuthorizationArchitecture#Globalidentifiers:Fedids fedid] of the public key of an X.509 certificate to the standard output. This is handy in getting fedids for the various [FeddDatabases databases] that `fedd` uses. The command is invoked with 0 or more '''--attribute='''''attr'' parameters and 0 or more filenames. The command prints the fedids and the attributes in the format of a [FeddDatabases#GlobalAccessDB global access database] and can be used directly to construct those files. For example, this invocation: |
425 | | |
426 | | {{{ |
427 | | $ fedid.py --attribute=split --attribute=allocate fedd.pem deterboss.pem |
428 | | }}} |
429 | | |
430 | | produces |
431 | | |
432 | | {{{ |
433 | | fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea split,allocate |
434 | | fedid:9b8e7f2b114956ad516befc93fa7e7eae3751bf9 split,allocate |
435 | | }}} |