summaryrefslogtreecommitdiffstats
path: root/lib/puppet/face/node.rb
blob: 1153ad4470efac82398dc9e41b0fec276639f88f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
require 'puppet/indirector/face'
Puppet::Indirector::Face.define(:node, '0.0.1') do
  copyright "Puppet Labs", 2011
  license   "Apache 2 license; see COPYING"

  summary "View and manage node definitions."
  description <<-'EOT'
    This subcommand interacts with node objects, which are used by Puppet to
    build a catalog. A node object consists of the node's facts, environment,
    node parameters (exposed in the parser as top-scope variables), and classes.
  EOT

  get_action(:destroy).summary "Invalid for this subcommand."
  get_action(:search).summary "Invalid for this subcommand."
  get_action(:save).summary "Invalid for this subcommand."
  get_action(:save).description "Invalid for this subcommand."

  find = get_action(:find)
  find.summary "Retrieve a node object."
  find.arguments "<host>"
  find.returns <<-'EOT'
    A hash containing the node's `classes`, `environment`, `expiration`, `name`,
    `parameters` (its facts, combined with any ENC-set parameters), and `time`.
    When used from the Ruby API: a Puppet::Node object.

    RENDERING ISSUES: Rendering as string and json are currently broken;
    node objects can only be rendered as yaml.
  EOT
  find.examples <<-'EOT'
    Retrieve an "empty" (no classes, no ENC-imposed parameters, and an
    environment of "production") node:

    $ puppet node find somenode.puppetlabs.lan --terminus plain --render-as yaml

    Retrieve a node using the puppet master's configured ENC:

    $ puppet node find somenode.puppetlabs.lan --terminus exec --mode master --render-as yaml

    Retrieve the same node from the puppet master:

    $ puppet node find somenode.puppetlabs.lan --terminus rest --render-as yaml
  EOT
end