diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-04-23 06:16:10 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-04-23 06:16:10 +0000 |
| commit | a478ed2b5beadd1124c375ced21a9343dc6c591a (patch) | |
| tree | c1543b467e212a51249dd81a4db1aadaf7e47b2c | |
| parent | 70ec0cc1d90aad151141e8139a0d17213e49346b (diff) | |
| download | puppet-a478ed2b5beadd1124c375ced21a9343dc6c591a.tar.gz puppet-a478ed2b5beadd1124c375ced21a9343dc6c591a.tar.xz puppet-a478ed2b5beadd1124c375ced21a9343dc6c591a.zip | |
Translating all of the docs except the type docs to RST
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2406 980ebf18-57e1-0310-9a29-db15c13687c0
| -rwxr-xr-x | bin/puppetdoc | 186 | ||||
| -rw-r--r-- | lib/puppet/configuration.rb | 4 | ||||
| -rwxr-xr-x | lib/puppet/network/handler/report.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/parser/functions.rb | 10 | ||||
| -rw-r--r-- | lib/puppet/reports/rrdgraph.rb | 4 | ||||
| -rw-r--r-- | lib/puppet/reports/tagmail.rb | 4 |
6 files changed, 192 insertions, 18 deletions
diff --git a/bin/puppetdoc b/bin/puppetdoc index d44549baa..d96ae5d1d 100755 --- a/bin/puppetdoc +++ b/bin/puppetdoc @@ -27,6 +27,9 @@ # resource type documentation, and 'configref', for documentation on all # of the configuration parameters. # +# trac:: +# Write the reference docs to trac. Only works on servers at Reductive Labs. +# # = Example # # $ puppetdoc > /tmp/reference.rst @@ -45,6 +48,7 @@ require 'puppet/network/handler' require 'getoptlong' result = GetoptLong.new( + [ "--trac", "-t", GetoptLong::NO_ARGUMENT ], [ "--mode", "-m", GetoptLong::REQUIRED_ARGUMENT ], [ "--help", "-h", GetoptLong::NO_ARGUMENT ] ) @@ -52,12 +56,15 @@ result = GetoptLong.new( debug = false $tab = " " +$trac = false mode = :typedocs begin result.each { |opt,arg| case opt + when "--trac" + $trac = true when "--mode" mode = arg.intern when "--help" @@ -76,6 +83,134 @@ end include Puppet::Util::Docs +TRACMAP = { + :configref => "ConfigurationReference", + :reports => "ReportReference", + :functions => "FunctionReference", + :types => "TypeReference" +} + +HEADERS = { + :configref => "Puppet Configuration Reference +============================== + +Specifying Configuration Parameters +----------------------------------- + +Every Puppet executable (with the exception of ``puppetdoc``) accepts all of +the arguments below, but not all of the arguments make sense for every executable. +Each argument has a section listed with it in parentheses; often, that section +will map to an executable (e.g., ``puppetd``), in which case it probably only +makes sense for that one executable. If ``puppet`` is listed as the section, +it is most likely an option that is valid for everyone. + +This will not always be the case. I have tried to be as thorough as possible +in the descriptions of the arguments, so it should be obvious whether an +argument is appropriate or not. + +These arguments can be supplied to the executables either as command-line +arugments or in the configuration file for the appropriate executable. For +instance, the command-line invocation below would set the configuration directory +to ``/private/puppet``:: + + $ puppetd --confdir=/private/puppet + +Note that boolean options are turned on and off with a slightly different syntax +on the command line:: + + $ puppetd --storeconfigs + + $ puppetd --no-storeconfigs + +The invocations above will enable and disable, respectively, the storage of +the client configuration. + +As mentioned above, the configuration parameters can also be stored in a +configuration file located in the configuration directory (`/etc/puppet` +by default). The file is named for the executable it is intended for, for +example `/etc/puppetd.conf` is the configuration file for `puppetd`. + +The file, which follows INI-style formatting, should contain a bracketed +heading named for the executable, followed by pairs of parameters with their +values. Here is an example of a very simple ``puppetd.conf`` file:: + + [puppetd] + confdir = /private/puppet + storeconfigs = true + +Note that boolean parameters must be explicitly specified as `true` or +`false` as seen above. + +If you're starting out with a fresh configuration, you may wish to let +the executable generate a template configuration file for you by invoking +the executable in question with the `--genconfig` command. The executable +will print a template configuration to standard output, which can be +redirected to a file like so:: + + $ puppetd --genconfig > /etc/puppet/puppetd.conf + +Note that this invocation will \"clobber\" (throw away) the contents of any +pre-existing `puppetd.conf` file, so make a backup of your present config +if it contains valuable information. + +Like the `--genconfig` argument, the executables also accept a `--genmanifest` +argument, which will generate a manifest that can be used to manage all of +Puppet's directories and files and prints it to standard output. This can +likewise be redirected to a file:: + + $ puppetd --genmanifest > /etc/puppet/manifests/site.pp + +Puppet can also create user and group accounts for itself (one `puppet` group +and one `puppet` user) if it is invoked as `root` with the `--mkusers` argument:: + + $ puppetd --mkusers + +Signals +------- + +The `puppetd` and `puppetmasterd` executables catch some signals for special +handling. Both daemons catch (`SIGHUP`), which forces the server to restart +tself. Predictably, interrupt and terminate (`SIGINT` and `SIGHUP`) will shut +down the server, whether it be an instance of `puppetd` or `puppetmasterd`. + +Sending the `SIGUSR1` signal to an instance of `puppetd` will cause it to +immediately begin a new configuration transaction with the server. This +signal has no effect on `puppetmasterd`. + +Configuration Parameter Reference +--------------------------------- + +Below is a list of all documented parameters. Any default values are in ``block type`` at the end of the description. + +", +:reports => "Puppet clients can report back to the server after each transaction. This +transaction report is sent as a YAML dump of the +``Puppet::Transaction::Report`` class and includes every log message that was +generated during the transaction along with as many metrics as Puppet knows how +to collect. See `ReportsAndReporting Reports and Reporting`:trac: +for more information on how to use reports. + +Currently, clients default to not sending in reports; you can enable reporting +by setting the ``report`` parameter to true. + +To use a report, set the ``reports`` parameter on the server; multiple +reports must be comma-separated. You can also specify ``none`` to disable +reports entirely. + +Puppet provides multiple report handlers that will process client reports: + +", +:functions => "There are two types of functions in Puppet: Statements and rvalues. +Statements stand on their own and do not return arguments; they are used for +performing stand-alone work like importing. Rvalues return values and can +only be used in a statement requiring a value, such as an assignment or a case +statement. + +Here are the functions available in Puppet: + +" +} + # Indent every line in the chunk except those which begin with '..'. def indent(text, tab) return text.gsub(/(^|\A)/, tab).gsub(/^ +\.\./, "..") @@ -103,20 +238,33 @@ def self.configref a[0].to_s <=> b[0].to_s }.each do |name, object| # Make each name an anchor - puts %{#### <a name="#{name.to_s}">#{name.to_s}</a> (<em>#{object.section.to_s}</em>)} + #header = %{#{name.to_s} (*#{object.section.to_s}*)\n} + header = name.to_s + puts header + puts "+" * header.length - puts "" - default = "" - if val = object.value and val != "" - default = " ``%s``" % val - end + # Print the doc string itself begin - puts object.desc.gsub(/\n/, " ") + default + #puts object.desc.gsub(/\n/, " ") + default + puts object.desc.gsub(/\n/, " ") rescue => detail puts detail.backtrace puts detail end puts "" + + # Now print the data about the item. + puts "" + default = "" + val = object.value + puts "- **Section**: %s" % object.section + unless val == "" + puts "- **Default**: %s" % val + end + #if val = object.value and val != "" + # default = " ``%s``" % val + #end + puts "" end end @@ -288,6 +436,14 @@ unless respond_to?(mode) raise "Invalid mode %s" % mode end +if $trac + STDOUT.close + STDOUT.reopen("/tmp/puppetdoc.out") +end + +puts "{{{ +#!rst\n" +puts HEADERS[mode] send(mode) puts " @@ -295,6 +451,20 @@ puts " ---------------- " -puts "\n*This page autogenerated on %s*" % Time.now +puts "\n*This page autogenerated on %s* +}}}" % Time.now + + +if $trac + STDOUT.flush + cmd = %{sudo trac-admin /export/svn/trac/puppet wiki import %s /tmp/puppetdoc.out} % TRACMAP[mode] + output = %x{#{cmd}} + unless $? == 0 + $stderr.puts "trac-admin failed" + $stderr.puts output + exit(1) + end + $stderr.puts output +end # $Id$ diff --git a/lib/puppet/configuration.rb b/lib/puppet/configuration.rb index 67c772eac..f711ce3ec 100644 --- a/lib/puppet/configuration.rb +++ b/lib/puppet/configuration.rb @@ -18,7 +18,7 @@ module Puppet :confdir => [conf, "The main Puppet configuration directory."], :vardir => [var, "Where Puppet stores dynamic and growing data."], :name => [name, "The name of the service, if we are running as one. The - default is essentially $0 without the path or '.rb'."] + default is essentially $0 without the path or ``.rb``."] ) if name == "puppetmasterd" @@ -208,7 +208,7 @@ module Puppet :puppetport => [8139, "Which port puppetd listens on."], :noop => [false, "Whether puppetd should be run in noop mode."], :runinterval => [1800, # 30 minutes - "How often puppetd applies the client configuration; in seconds"], + "How often puppetd applies the client configuration; in seconds."], :listen => [false, "Whether puppetd should listen for connections. If this is true, then by default only the ``runner`` server is started, which allows remote authorized diff --git a/lib/puppet/network/handler/report.rb b/lib/puppet/network/handler/report.rb index 77e31f04a..574970fc4 100755 --- a/lib/puppet/network/handler/report.rb +++ b/lib/puppet/network/handler/report.rb @@ -68,7 +68,7 @@ class Puppet::Network::Handler # Use this method so they all get loaded reports.sort { |a,b| a.to_s <=> b.to_s }.each do |name| mod = self.report(name) - docs += "## %s\n\n" % name + docs += "%s\n%s\n" % [name, "-" * name.to_s.length] docs += Puppet::Util::Docs.scrub(mod.doc) + "\n\n" end diff --git a/lib/puppet/parser/functions.rb b/lib/puppet/parser/functions.rb index 21de7b6c0..c3208c4c9 100644 --- a/lib/puppet/parser/functions.rb +++ b/lib/puppet/parser/functions.rb @@ -75,13 +75,15 @@ module Functions ret = "" @functions.sort { |a,b| a[0].to_s <=> b[0].to_s }.each do |name, hash| - ret += "* **%s** (*%s*)" % [name, hash[:type]] + #ret += "%s\n%s\n" % [name, hash[:type]] + ret += "%s\n%s\n" % [name, "-" * name.to_s.length] if hash[:doc] - ret += ": " + hash[:doc].gsub(/\n\s*/, ' ') + ret += hash[:doc].gsub(/\n\s*/, ' ') else - ret += ": ``undocumented``" + ret += "Undocumented.\n" end - ret += "\n\n" + + ret += "\n\n- **Type**: %s\n\n" % hash[:type] end return ret diff --git a/lib/puppet/reports/rrdgraph.rb b/lib/puppet/reports/rrdgraph.rb index ce8414191..5371f8247 100644 --- a/lib/puppet/reports/rrdgraph.rb +++ b/lib/puppet/reports/rrdgraph.rb @@ -3,7 +3,9 @@ require 'puppet' Puppet::Network::Handler.report.newreport(:rrdgraph) do desc "Graph all available data about hosts using the RRD library. You must have the RRD binary ruby library installed to use this report, which - you can get from [Tobias Oetiker's site](http://oss.oetiker.ch/rrdtool/pub/contrib/). + you can get from `Tobias Oetiker's site`_. + + .. _tobias oetiker's site: http://oss.oetiker.ch/rrdtool/pub/contrib/ This report will create, manage, and graph RRD database files for each of the metrics generated during transactions, and it will create a diff --git a/lib/puppet/reports/tagmail.rb b/lib/puppet/reports/tagmail.rb index ba327bc85..c2225bf7d 100644 --- a/lib/puppet/reports/tagmail.rb +++ b/lib/puppet/reports/tagmail.rb @@ -6,7 +6,7 @@ require 'net/smtp' Puppet::Network::Handler.report.newreport(:tagmail) do desc "This report sends specific log messages to specific email addresses based on the tags in the log messages. See the - [tag documentation](/trac/puppet/wiki/UsingTags) for more information + `UsingTags tag documentation`:trac: for more information on tags. To use this report, you must create a ``tagmail.conf`` (in the location @@ -21,7 +21,7 @@ Puppet::Network::Handler.report.newreport(:tagmail) do Lastly, there is an ``all`` tag that will always match all log messages. - Here is an example tagmail.conf: + Here is an example tagmail.conf:: all: me@domain.com webserver, !mailserver: httpadmins@domain.com |
