Changes between Version 34 and Version 35 of FeddCommands


Ignore:
Timestamp:
Jun 12, 2014 2:11:08 PM (10 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FeddCommands

    v34 v35  
    33These are the various user level programs that the fedd package installs, including fedd itself.
    44
    5 [[TOC()]]]
     5[[TOC()]]
    66
    77== Fedd ==
     
    2020 '''--logfile='''''filename''::
    2121  Redirect log output to ''filename'' rather than the default standard output
     22== Command Line ==
     23
     24These 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
     26All 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
     28All are installed in {{{/usr/local/bin}}} by default.
     29
     30All 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
     49This 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
     51When `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
     78Returns 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
     87The output has the format:
     88{{{
     89element_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
     96Internally, 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
     123This 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
     125The 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
     141An 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{{{
     172local_name:fedid:status
     173}}}
     174
     175=== fedd_new.py ===
     176
     177This 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
     186Translates 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
     195This 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
     197It 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
     210Deallocate 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
     225The `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
     229The `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
     235produces
     236
     237{{{
     238fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea split,allocate
     239fedid:9b8e7f2b114956ad516befc93fa7e7eae3751bf9 split,allocate
     240}}}
    22241
    23242== Configuration Utilities ==
     
    215434
    216435
    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 }}}