Changes between Version 16 and Version 17 of FeddCommands


Ignore:
Timestamp:
Jun 6, 2010 7:11:44 AM (14 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FeddCommands

    v16 v17  
    33These are the various user level programs that the fedd package installs, including fedd itself.
    44
    5 == Fedd.py ==
     5== Fedd ==
     6
     7This is the daemon itself, which is either an experiment controller or access controller (or both) depending on its [FeddConfig configuration].  After the fedd description, we cover the various support scripts included in the distribution, before addressing the
     8[FeddCommands#CommandLine command line interface].
     9
     10=== Fedd.py ===
    611
    712The main federation daemon; when this documentation refers to `fedd` is is the `fedd.py` executable that is running.  It can run on any host as any user, provided permissions and keys are correct.  Most of `fedd`'s behavior is controlled by its [FeddConfig configuration files] and [FeddDatabases databases], there are a few command line arguments.
     
    1419  Redirect log output to ''filename'' rather than the default standard output
    1520
    16 == Confirm_sshkey.py ==
     21=== Confirm_sshkey.py ===
    1722
    1823The `confirm_sshkey.py` command is used by `fedd` to confirm that a local account can be accessed using an SSH public key.  It does this by accessing the Emulab database, and must run on `boss`.  It is included in the distribution for administrators who want to be able to confirm keys without patching `addpubkey`.
     
    2025The command takes the same arguments as the extended version of `addpubkey`, which is to say the same arguments as the unextended `addpubkey` plus '''-C'''.  Other than installing it and adjusting the '''confirmkey''' parameter in the  [allocation] section of the [FeddConfig#AllocationOptions configuration file] users should rarely need this command.  By default the fedd package `confirm_sshkey.py` in `/usr/local/bin`.
    2126
    22 == Exp_access_db.py ==
     27=== Exp_access_db.py ===
    2328
    2429The `exp_access_db.py` command is a helper to generate [FeddDatabases#ExperimentControlComponentAccessDB experiment control component access databases].  It can be run on `boss` to print data in that database's format that can be redirected into a file for use as a database.  With no options it converts the entire users table of the database into an experiment control access database with an entry for each local project of which the user is a member.  The [FeddAbout#GlobalIdentifiers:Fedids fedid's] are generated from the user's SSL certificates as they appear in the Emulab database.
     
    6267As with other commands in the fedd package, it is installed in `/usr/local/bin` by default.
    6368
     69
     70=== Fedid.py ===
     71
     72The `fedid.py` command prints the [Feddabout#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:
     73
     74{{{
     75$ fedid.py --attribute=split --attribute=allocate fedd.pem deterboss.pem
     76}}}
     77
     78produces
     79
     80{{{
     81fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea split,allocate
     82fedid:9b8e7f2b114956ad516befc93fa7e7eae3751bf9 split,allocate
     83}}}
     84
     85=== User_to_project.py ===
     86
     87The `user_to_project.py` command exists to provide command line functionality that Emulab keeps in a web page.  It attaches a user to a project.  It is called by a `fedd` running on `boss` when a project is dynamically created.  Its default installation destination and the default value for the [experiment_control] parameter '''user_to_project''' both default to `/usr/local/bin/user_to_project.py`.  It is unlikely a user will ever need to run this command.
     88
     89== Command Line ==
     90
     91These 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.
     92
     93All are installed in {{{/usr/local/bin}}} by default.
     94
     95All the command line tools accept the following arguments:
     96
     97 '''--cert='''''filename''::
     98  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.
     99 '''--debug'''::
     100  Produce additional debugging output.
     101 '''--serializeOnly'''::
     102  Do not contact the `fedd`, but just print the SOAP or XMLRPC message to the standard output.
     103 '''--trusted='''''filename''::
     104  Use the certificates in ''filename'' as certificate authorities to confirm the server's identity.  Optional.
     105 '''--url='''''fedd_url'''::
     106  Fedd to contact.
     107 '''--transport=[xmlrpc|soap]'''::
     108  Use the given encoding of the service request.
     109 '''--trace'''::
     110  Print the SOAP exchanges to stderr.  Currently only the SOAP transport is supported.
     111
    64112== fedd_create.py ==
    65113
    66 This command creates a federated experiment from an experiment description.  It does the equivalent of a call to `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.
    67 
    68 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 `fedd_multistatus.py` commands or wait for the experiment to be instantiated using `fedd_spewlog.py`.
     114This 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.
     115
     116When `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 [FeddCommnads#fedd_multistatus.py fedd_multistatus.py] commands or wait for the experiment to be instantiated using [FeddCommands#fedd_spewlog.py fedd_spewlog.py].
     117
     118`fedd_create.py` takes the following arguments:
     119
     120 '''--experiment_cert='''''filename''::
     121  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.
     122 '''--experiment_name='''''exp_name''::
     123  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.
     124 '''--file='''''filename''::
     125  File containing the [FeddAbout#ExperimentDescriptions experiment description].
     126 '''--project='''''export_project''::
     127  The local project to export from the master testbed.
     128 '''--master='''''master_testbed''::
     129  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.
     130
     131
     132
     133
     134
     135
     136
     137
    69138
    70139== Fedd_client.py ==
     
    193262
    194263provides information on their use.
    195 
    196 == Fedid.py ==
    197 
    198 The `fedid.py` command prints the [Feddabout#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:
    199 
    200 {{{
    201 $ fedid.py --attribute=split --attribute=allocate fedd.pem deterboss.pem
    202 }}}
    203 
    204 produces
    205 
    206 {{{
    207 fedid:ce90957dd5b7d20f9c3890c4599313b7f1cf31ea split,allocate
    208 fedid:9b8e7f2b114956ad516befc93fa7e7eae3751bf9 split,allocate
    209 }}}
    210 
    211 == User_to_project.py ==
    212 
    213 The `user_to_project.py` command exists to provide command line functionality that Emulab keeps in a web page.  It attaches a user to a project.  It is called by a `fedd` running on `boss` when a project is dynamically created.  Its default installation destination and the default value for the [experiment_control] parameter '''user_to_project''' both default to `/usr/local/bin/user_to_project.py`.  It is unlikely a user will ever need to run this command.