[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, experimental, updated. debian/2.6.8-1-844-g7ec39d5

nfagerlund nick.fagerlund at gmail.com
Tue May 10 08:19:39 UTC 2011


The following commit has been merged in the experimental branch:
commit dce072a87c0a47b4edc76ca988029ee8b626eeb6
Author: nfagerlund <nick.fagerlund at gmail.com>
Date:   Wed Apr 27 10:46:47 2011 -0700

    (#6962) Add self-documentation data to puppet faces
    
    This patch adds documentation strings to most of the faces, actions, and options
    introduced in 2.7.0. There are a small number of TK notes remaining, and longer strings
    have not been indented to take advantage of the patch from issue #7221.

diff --git a/lib/puppet/face/catalog.rb b/lib/puppet/face/catalog.rb
index 3e964c7..660574e 100644
--- a/lib/puppet/face/catalog.rb
+++ b/lib/puppet/face/catalog.rb
@@ -5,18 +5,47 @@ Puppet::Indirector::Face.define(:catalog, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Compile, save, view, and convert catalogs."
-
   description <<-EOT
-This face primarily interacts with the compiling subsystem.
-By default, it compiles a catalog using the default manifest and the
-hostname from 'certname', but you can choose to retrieve a catalog from
-the server by specifying '--from rest'.  You can also choose to print any
-catalog in 'dot' format (for easy graph viewing with OmniGraffle or Graphviz)
-with '--format dot'.
+This face primarily interacts with the compiling subsystem. By default,
+it compiles a catalog using the default manifest and the hostname from
+`certname`, but you can choose to retrieve a catalog from the server by
+specifying `--terminus rest`.  You can also choose to print any catalog
+in 'dot' format (for easy graph viewing with OmniGraffle or Graphviz)
+with '--render-as dot'.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `active_record`
+* `compiler`
+* `queue`
+* `rest`
+* `yaml`
   EOT
 
   action(:apply) do
-    summary "apply a Puppet::Resource::Catalog object"
+    summary "Apply a Puppet::Resource::Catalog object"
+    description <<-EOT
+Applies a catalog object retrieved with the `download` action. This
+action cannot consume a serialized catalog, and is not intended for
+command-line use."
+    EOT
+    notes <<-EOT
+This action returns a Puppet::Transaction::Report object.
+    EOT
+    examples <<-EOT
+From `secret_agent.rb`:
+
+    Puppet::Face[:plugin, '0.0.1'].download
+
+    facts   = Puppet::Face[:facts, '0.0.1'].find(certname)
+    catalog = Puppet::Face[:catalog, '0.0.1'].download(certname, facts)
+    report  = Puppet::Face[:catalog, '0.0.1'].apply(catalog)
+
+    Puppet::Face[:report, '0.0.1'].submit(report)
+    EOT
 
     when_invoked do |options|
       catalog = Puppet::Face[:catalog, "0.0.1"].find(Puppet[:certname]) or raise "Could not find catalog for #{Puppet[:certname]}"
@@ -42,8 +71,24 @@ with '--format dot'.
   end
 
   action(:download) do
-    summary "Download the catalog for the certname to the local filesystem."
+    summary "Download this node's catalog from the puppet master server"
+    description <<-EOT
+Retrieves a catalog from the puppet master. Unlike the `find` action,
+`download` submits facts to the master as part of the request. This
+action is not intended for command-line use.
+    EOT
+    notes "This action returns a Puppet::Resource::Catalog object."
+    examples <<-EOT
+From `secret_agent.rb`:
+
+    Puppet::Face[:plugin, '0.0.1'].download
+
+    facts   = Puppet::Face[:facts, '0.0.1'].find(certname)
+    catalog = Puppet::Face[:catalog, '0.0.1'].download(certname, facts)
+    report  = Puppet::Face[:catalog, '0.0.1'].apply(catalog)
 
+    Puppet::Face[:report, '0.0.1'].submit(report)
+    EOT
     when_invoked do |options|
       Puppet::Resource::Catalog.indirection.terminus_class = :rest
       Puppet::Resource::Catalog.indirection.cache_class = nil
diff --git a/lib/puppet/face/catalog/select.rb b/lib/puppet/face/catalog/select.rb
index a68a8e0..c5d37eb 100644
--- a/lib/puppet/face/catalog/select.rb
+++ b/lib/puppet/face/catalog/select.rb
@@ -1,6 +1,22 @@
 # Select and show a list of resources of a given type.
 Puppet::Face.define(:catalog, '0.0.1') do
   action :select do
+    summary "Select and show a list of resources of a given type"
+    description <<-EOT
+Retrieves a catalog for the specified host and returns an array of
+resources of the given type. This action is not intended for
+command-line use.
+    EOT
+    notes <<-NOTES
+The type name for this action must be given in its capitalized form.
+That is, calling `catalog select mynode file` will return an empty
+array, whereas calling it with 'File' will return a list of the node's
+file resources.
+
+By default, this action will retrieve a catalog from Puppet's compiler
+subsystem; you must call the action with `--terminus rest` if you wish
+to retrieve a catalog from the puppet master.
+    NOTES
     when_invoked do |host, type, options|
       # REVISIT: Eventually, type should have a default value that triggers
       # the non-specific behaviour.  For now, though, this will do.
diff --git a/lib/puppet/face/certificate.rb b/lib/puppet/face/certificate.rb
index 0018c5f..d1bdbec 100644
--- a/lib/puppet/face/certificate.rb
+++ b/lib/puppet/face/certificate.rb
@@ -5,16 +5,47 @@ Puppet::Indirector::Face.define(:certificate, '0.0.1') do
   copyright "Puppet Labs", 2011
   license   "Apache 2 license; see COPYING"
 
-  summary "provide access to the CA for certificate management"
+  summary "Provide access to the CA for certificate management"
+  description <<-EOT
+This face interacts with a local or remote Puppet certificate
+authority. Currently, its behavior is not a full superset of puppet
+cert; specifically, it is unable to mimic puppet cert's "clean" option,
+and its "generate" action submits a CSR rather than creating a
+signed certificate.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `ca`
+* `file`
+* `rest`
+  EOT
 
   option "--ca-location LOCATION" do
+    summary "The certificate authority to query"
+    description <<-EOT
+Whether to act on the local certificate authority or one provided by a
+remote puppet master. Allowed values are 'local' and 'remote.'
+    EOT
+
     before_action do |action, args, options|
       Puppet::SSL::Host.ca_location = options[:ca_location].to_sym
     end
   end
 
   action :generate do
-    summary "Generate a new Certificate Signing Request for HOST"
+    summary "Generate a new certificate signing request for HOST"
+    description <<-EOT
+Generates and submits a certificate signing request (CSR) for the
+provided host identifier. This CSR will then have to be signed by a user
+with the proper authorization on the certificate authority.
+
+Puppet agent handles CSR submission automatically. This action is
+primarily useful for requesting certificates for individual users and
+external applications.
+    EOT
 
     when_invoked do |name, options|
       host = Puppet::SSL::Host.new(name)
@@ -24,7 +55,7 @@ Puppet::Indirector::Face.define(:certificate, '0.0.1') do
   end
 
   action :list do
-    summary "List all Certificate Signing Requests"
+    summary "List all certificate signing requests"
 
     when_invoked do |options|
       Puppet::SSL::Host.indirection.search("*", {
@@ -34,7 +65,7 @@ Puppet::Indirector::Face.define(:certificate, '0.0.1') do
   end
 
   action :sign do
-    summary "Sign a Certificate Signing Request for HOST"
+    summary "Sign a certificate signing request for HOST"
 
     when_invoked do |name, options|
       host = Puppet::SSL::Host.new(name)
diff --git a/lib/puppet/face/certificate_request.rb b/lib/puppet/face/certificate_request.rb
index 8097584..907bed1 100644
--- a/lib/puppet/face/certificate_request.rb
+++ b/lib/puppet/face/certificate_request.rb
@@ -5,4 +5,28 @@ Puppet::Indirector::Face.define(:certificate_request, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Manage certificate requests."
+  description <<-EOT
+Retrieves and submits certificate signing requests (CSRs). Invoke
+`search` with an unread key to retrieve all outstanding CSRs, invoke
+`find` with a node certificate name to retrieve a specific request, and
+invoke `save` to submit a CSR.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `ca`
+* `file`
+* `rest`
+  EOT
+  examples <<-EOT
+Retrieve all CSRs from the local CA:
+
+    puppet certificate_request search no_key --terminus ca
+
+Retrieve a single CSR from the puppet master's CA:
+
+    puppet certificate_request find mynode.puppetlabs.lan --terminus rest
+  EOT
 end
diff --git a/lib/puppet/face/certificate_revocation_list.rb b/lib/puppet/face/certificate_revocation_list.rb
index 9913fad..4d5e26f 100644
--- a/lib/puppet/face/certificate_revocation_list.rb
+++ b/lib/puppet/face/certificate_revocation_list.rb
@@ -5,4 +5,25 @@ Puppet::Indirector::Face.define(:certificate_revocation_list, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Manage the list of revoked certificates."
+  description <<-EOT
+TK This is just for retrieving the CRL, right? Do the
+search/save/destroy methods do anything?
+  EOT
+  notes <<-EOT
+Although the find action must be given an argument, this argument is
+never read, and can contain the descriptive text of your choice.
+
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `ca`
+* `file`
+* `rest`
+  EOT
+  examples <<-EXAMPLES
+Retrieve the CRL:
+
+    puppet certificate_revocation_list find crl
+  EXAMPLES
 end
diff --git a/lib/puppet/face/config.rb b/lib/puppet/face/config.rb
index fc68520..6b4131f 100644
--- a/lib/puppet/face/config.rb
+++ b/lib/puppet/face/config.rb
@@ -4,9 +4,40 @@ Puppet::Face.define(:config, '0.0.1') do
   copyright "Puppet Labs", 2011
   license   "Apache 2 license; see COPYING"
 
-  summary "Interact with Puppet configuration options."
+  summary "Interact with Puppet configuration options"
 
   action(:print) do
+    summary "Examine Puppet's current configuration options"
+    description <<-EOT
+Prints the value of a single configuration option or a list of
+configuration options.
+
+This action is an alternate interface to the information available with
+`puppet agent --configprint`.
+    EOT
+    notes <<-EOT
+The return data of this action varies depending on its arguments. When
+called with "all," `print` will return a complete list of option names
+and values. When called with a single configuration option name, it will
+return the value of that option. When called with a list of
+configuration option names, it will return the corresponding list of
+option names and values.
+
+By default, this action retrieves its configuration information in agent
+mode. To examine the master's configuration, supply Puppet's global
+`--mode master` option. To examine configurations from a specific
+environment, you can use the `--environment` option.
+    EOT
+    examples <<-EOT
+Get puppet's runfile directory:
+
+    puppet config print rundir
+
+Get a list of important directories from the master's config:
+
+    puppet config print all --mode master | grep -E "(path|dir)"
+    EOT
+
     when_invoked do |*args|
       options = args.pop
       Puppet.settings[:configprint] = args.join(",")
diff --git a/lib/puppet/face/facts.rb b/lib/puppet/face/facts.rb
index 9add63d..12dbded 100644
--- a/lib/puppet/face/facts.rb
+++ b/lib/puppet/face/facts.rb
@@ -6,9 +6,34 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Retrieve, store, and view facts."
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `active_record`
+* `couch`
+* `facter`
+* `inventory_active_record`
+* `memory`
+* `network_device`
+* `rest`
+* `yaml`
+  EOT
 
   action(:upload) do
-    summary "upload our facts to the server."
+    summary "Upload our facts to the puppet master."
+    description <<-EOT
+Retrieves facts for the local system and saves them to the puppet master
+server. This is essentially a shortcut action: it calls the `find`
+action with the facter terminus, then passes the returned facts object
+to the `save` action, which uses the rest terminus.
+    EOT
+    notes <<-EOT
+This action uses the save action, which requires the puppet master's
+auth.conf to allow save access to the `facts` REST terminus. See
+`http://docs.puppetlabs.com/guides/rest_auth_conf.html` for more details.
+    EOT
 
     render_as :yaml
 
diff --git a/lib/puppet/face/file.rb b/lib/puppet/face/file.rb
index 1f2fc9f..9c66f66 100644
--- a/lib/puppet/face/file.rb
+++ b/lib/puppet/face/file.rb
@@ -5,6 +5,17 @@ Puppet::Indirector::Face.define(:file, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Retrieve and store files in a filebucket"
+  # TK this needs a description of how to find files in a filebucket, and
+  # some good use cases for retrieving/storing them. I can't write either
+  # of these yet.
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `file`
+* `rest`
+  EOT
 
   set_indirection_name :file_bucket_file
 end
diff --git a/lib/puppet/face/key.rb b/lib/puppet/face/key.rb
index 148dc06..79c08b7 100644
--- a/lib/puppet/face/key.rb
+++ b/lib/puppet/face/key.rb
@@ -4,11 +4,20 @@ Puppet::Indirector::Face.define(:key, '0.0.1') do
   copyright "Puppet Labs", 2011
   license   "Apache 2 license; see COPYING"
 
-  summary "Create, save, and remove certificate keys."
+  summary "Create, save, and remove certificate keys"
 
   description <<-EOT
-Keys are created for you automatically when certificate
-requests are generated with 'puppet certificate generate'.
+Keys are created for you automatically when certificate requests are
+generated with 'puppet certificate generate'. You should not have to use
+this action directly from the command line.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `ca`
+* `file`
   EOT
 
 end
diff --git a/lib/puppet/face/node.rb b/lib/puppet/face/node.rb
index c4cf30b..6400290 100644
--- a/lib/puppet/face/node.rb
+++ b/lib/puppet/face/node.rb
@@ -3,9 +3,22 @@ Puppet::Indirector::Face.define(:node, '0.0.1') do
   copyright "Puppet Labs", 2011
   license   "Apache 2 license; see COPYING"
 
-  summary "View and manage nodes"
+  summary "View and manage node definitions"
 
   description <<-EOT
-It defaults to using whatever your node terminus is set as.
+This face interacts with node objects, which are what Puppet uses to build a catalog. A node object consists of the node's facts, environment, additional top-scope variables, and classes. TK need this fact-checked.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `active_record`
+* `exec`
+* `ldap`
+* `memory`
+* `plain`
+* `rest`
+* `yaml`
   EOT
 end
diff --git a/lib/puppet/face/parser.rb b/lib/puppet/face/parser.rb
index c4c3fb5..26035d0 100644
--- a/lib/puppet/face/parser.rb
+++ b/lib/puppet/face/parser.rb
@@ -8,6 +8,12 @@ Puppet::Face.define(:parser, '0.0.1') do
   summary "Interact directly with the parser"
 
   action :validate do
+    summary "Validate the syntax of one or more Puppet manifests"
+    description <<-EOT
+This action validates Puppet DSL syntax without compiling a catalog or
+syncing any resources. If no manifest files are provided, it will
+validate the default site manifest.
+    EOT
     when_invoked do |*args|
       args.pop
       files = args
diff --git a/lib/puppet/face/plugin.rb b/lib/puppet/face/plugin.rb
index 8a25594..f55bd3b 100644
--- a/lib/puppet/face/plugin.rb
+++ b/lib/puppet/face/plugin.rb
@@ -4,6 +4,16 @@ Puppet::Face.define(:plugin, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Interact with the Puppet plugin system"
+  description <<-EOT
+This face provides network access to the puppet master's store of
+plugins. It is intended for use in other faces, rather than for direct
+command line access.
+  EOT
+  notes <<-EOT
+The puppet master can serve Ruby code collected from the lib directories
+of its modules. These plugins can be used on agent nodes to extend
+Facter and implement custom types and providers.
+  EOT
 
   action :download do
     summary "Download plugins from the configured master"
@@ -11,6 +21,12 @@ Puppet::Face.define(:plugin, '0.0.1') do
             An array containing the files actually downloaded.
             This will be empty array when everything was in sync.
             EOT
+    notes "This action modifies files on disk without returning any data."
+    examples <<-EOT
+Retrieve plugins from the puppet master:
+
+    Puppet::Face[:plugin, '0.0.1'].download
+    EOT
 
     when_invoked do |options|
       require 'puppet/configurer/downloader'
diff --git a/lib/puppet/face/report.rb b/lib/puppet/face/report.rb
index f5b6d08..7143d45 100644
--- a/lib/puppet/face/report.rb
+++ b/lib/puppet/face/report.rb
@@ -5,8 +5,35 @@ Puppet::Indirector::Face.define(:report, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Create, display, and submit reports"
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `processor`
+* `rest`
+* `yaml`
+
+  EOT
 
   action(:submit) do
+    summary "Submit a report object to the puppet master"
+    description <<-EOT
+This action is essentially a shortcut and wrapper for the `save` action
+with a terminus of `rest`. It also can provide additional details in the
+event of a report submission failure. It is not intended for use from
+a command line.
+    EOT
+    examples <<-EOT
+From secret_agent.rb:
+    Puppet::Face[:plugin, '0.0.1'].download
+
+    facts   = Puppet::Face[:facts, '0.0.1'].find(certname)
+    catalog = Puppet::Face[:catalog, '0.0.1'].download(certname, facts)
+    report  = Puppet::Face[:catalog, '0.0.1'].apply(catalog)
+
+    Puppet::Face[:report, '0.0.1'].submit(report)
+    EOT
     when_invoked do |report, options|
       begin
         Puppet::Transaction::Report.indirection.terminus_class = :rest
diff --git a/lib/puppet/face/resource.rb b/lib/puppet/face/resource.rb
index 9ded46c..72e9a2a 100644
--- a/lib/puppet/face/resource.rb
+++ b/lib/puppet/face/resource.rb
@@ -5,4 +5,19 @@ Puppet::Indirector::Face.define(:resource, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "Interact directly with resources via the RAL, like ralsh"
+  description <<-EOT
+This face provides a Ruby API with functionality similar to the puppet
+resource (née ralsh) command line application. It is not intended to be
+used from the command line.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `ral`
+* `rest`
+  EOT
+
+  examples "TK we really need some examples for this one."
 end
diff --git a/lib/puppet/face/resource_type.rb b/lib/puppet/face/resource_type.rb
index 648cf11..c400437 100644
--- a/lib/puppet/face/resource_type.rb
+++ b/lib/puppet/face/resource_type.rb
@@ -5,4 +5,13 @@ Puppet::Indirector::Face.define(:resource_type, '0.0.1') do
   license   "Apache 2 license; see COPYING"
 
   summary "View resource types, classes, and nodes from all manifests"
+  description "TK I have no idea what this does."
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `parser`
+* `rest`
+  EOT
 end
diff --git a/lib/puppet/face/secret_agent.rb b/lib/puppet/face/secret_agent.rb
index 99208b5..2ddc5c9 100644
--- a/lib/puppet/face/secret_agent.rb
+++ b/lib/puppet/face/secret_agent.rb
@@ -4,10 +4,23 @@ Puppet::Face.define(:secret_agent, '0.0.1') do
   copyright "Puppet Labs", 2011
   license   "Apache 2 license; see COPYING"
 
-  summary "Provides agent-like behavior, with no plugin downloading or reporting."
+  summary "Provides agent-like behavior, with no plugin downloading or reporting"
+  description <<-EOT
+This face currently functions as a proof of concept, demonstrating how
+Faces allows the separation of application logic from Puppet's internal
+systems; compare the code for puppet agent. It will eventually replace
+puppet agent entirely, and can provide a template for users who wish to
+implement agent-like functionality with drastically different
+application logic.
+  EOT
 
   action(:synchronize) do
-    summary "run the secret agent, which makes the catalog and system match..."
+    summary "Retrieve and apply a catalog from the puppet master"
+    description <<-EOT
+This action mimics the behavior of the puppet agent application. It does
+not currently daemonize, but can download plugins, submit facts,
+retrieve and apply a catalog, and submit a report to the puppet master.
+    EOT
 
     when_invoked do |options|
       Puppet::Face[:plugin, '0.0.1'].download
diff --git a/lib/puppet/face/status.rb b/lib/puppet/face/status.rb
index 7ef05fa..0b53bef 100644
--- a/lib/puppet/face/status.rb
+++ b/lib/puppet/face/status.rb
@@ -4,5 +4,27 @@ Puppet::Indirector::Face.define(:status, '0.0.1') do
   copyright "Puppet Labs", 2011
   license   "Apache 2 license; see COPYING"
 
-  summary "View status information"
+  summary "View puppet server status"
+  description <<-EOT
+This subcommand is only useful for determining whether a puppet master
+server (or an agent node, if puppet was started with the `--listen`
+option) is responding to requests.
+
+Only the `find` action is valid. If the server is responding to
+requests, `find` will retrieve a status object; if not, the connection
+will be refused. When invoked with the `local` terminus, `find` will
+always return true.
+
+If you wish to query a server other than the master configured in
+puppet.conf, you must set the `--server` and `--masterport` options on
+the command line.
+  EOT
+  notes <<-EOT
+This is an indirector face, which exposes find, search, save, and
+destroy actions for an indirected subsystem of Puppet. Valid terminuses
+for this face include:
+
+* `local`
+* `rest`
+  EOT
 end
diff --git a/lib/puppet/indirector/face.rb b/lib/puppet/indirector/face.rb
index 0fd44df..3140ce2 100644
--- a/lib/puppet/indirector/face.rb
+++ b/lib/puppet/indirector/face.rb
@@ -2,10 +2,23 @@ require 'puppet/face'
 
 class Puppet::Indirector::Face < Puppet::Face
   option "--terminus TERMINUS" do
-    description %q{
-REVISIT: You can select a terminus, which has some bigger effect
-that we should describe in this file somehow.
-}.strip
+    summary "The indirector terminus to use for this action"
+    description <<-EOT
+Indirector faces expose indirected subsystems of Puppet. These
+subsystems are each able to retrieve and alter a specific type of data
+(with the familiar actions of `find`, `search`, `save`, and `destroy`)
+from an arbitrary number of pluggable backends. In Puppet parlance,
+these backends are called terminuses.
+
+Almost all indirected subsystems have a `rest` terminus that interacts
+with the puppet master's data. Most of them have additional terminuses
+for various local data models, which are in turn used by the indirected
+subsystem on the puppet master whenever it receives a remote request.
+
+The terminus for an action is often determined by context, but
+occasionally needs to be set explicitly. See the "Notes" section of this
+face's manpage for more details.
+    EOT
 
     before_action do |action, args, options|
       set_terminus(options[:terminus])
@@ -36,23 +49,38 @@ that we should describe in this file somehow.
   end
 
   action :destroy do
+    summary "Delete an object"
     when_invoked { |key, options| call_indirection_method(:destroy, key, options) }
   end
 
   action :find do
+    summary "Retrieve an object by name"
     when_invoked { |key, options| call_indirection_method(:find, key, options) }
   end
 
   action :save do
+    summary "Create or modify an object"
+    notes <<-EOT
+Save actions cannot currently be invoked from the command line, and are
+for API use only.
+    EOT
     when_invoked { |key, options| call_indirection_method(:save, key, options) }
   end
 
   action :search do
+    summary "Search for an object"
     when_invoked { |key, options| call_indirection_method(:search, key, options) }
   end
 
   # Print the configuration for the current terminus class
   action :info do
+    summary "Print the default terminus class for this face"
+    description <<-EOT
+TK So this is per-face, right? No way to tell what the default terminus
+is per-action, for subsystems that switch to REST for save but query
+locally for find?
+    EOT
+
     when_invoked do |*args|
       if t = indirection.terminus_class
         puts "Run mode '#{Puppet.run_mode.name}': #{t}"

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list