summaryrefslogtreecommitdiffstats
path: root/lib/puppet/reference
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/reference')
-rw-r--r--lib/puppet/reference/network.rb33
-rw-r--r--lib/puppet/reference/providers.rb49
2 files changed, 82 insertions, 0 deletions
diff --git a/lib/puppet/reference/network.rb b/lib/puppet/reference/network.rb
new file mode 100644
index 000000000..32a1fdd89
--- /dev/null
+++ b/lib/puppet/reference/network.rb
@@ -0,0 +1,33 @@
+network = Puppet::Util::Reference.newreference :network, :depth => 2, :doc => "Available network handlers and clients" do
+ ret = ""
+ Puppet::Network::Handler.subclasses.each do |name|
+ handler = Puppet::Network::Handler.handler(name)
+
+ next if ! handler.doc or handler.doc == ""
+
+ interface = handler.interface
+
+ ret += h(name, 2)
+
+ ret += scrub(handler.doc)
+ ret += "\n\n"
+ ret += option(:prefix, interface.prefix)
+ ret += option(:side, handler.side.to_s.capitalize)
+ ret += option(:methods, interface.methods.collect { |ary| ary[0] }.join(", ") )
+ ret += "\n\n"
+ end
+
+ ret
+end
+
+network.header = "
+This is a list of all Puppet network interfaces. Each interface is
+implemented in the form of a client and a handler; the handler is loaded
+on the server, and the client knows how to call the handler's methods
+appropriately.
+
+Most handlers are meant to be started on the server, usually within
+``puppetmasterd``, and the clients are mostly started on the client,
+usually within ``puppetd``.
+
+"
diff --git a/lib/puppet/reference/providers.rb b/lib/puppet/reference/providers.rb
new file mode 100644
index 000000000..2d9d7f8cb
--- /dev/null
+++ b/lib/puppet/reference/providers.rb
@@ -0,0 +1,49 @@
+providers = Puppet::Util::Reference.newreference :providers, :doc => "Which providers are valid for this machine" do
+ types = []
+ Puppet::Type.loadall
+ Puppet::Type.eachtype do |klass|
+ next unless klass.providers.length > 0
+ types << klass
+ end
+ types.sort! { |a,b| a.name.to_s <=> b.name.to_s }
+
+ ret = ""
+ types.each do |type|
+ ret += h(type.name, 2)
+ features = type.features
+ unless features.empty?
+ ret += option("Available Features", features.collect { |f| f.to_s }.sort.join(", "))
+ end
+ ret += "\n" # add a trailing newline
+ type.providers.sort { |a,b| a.to_s <=> b.to_s }.each do |pname|
+ provider = type.provider(pname)
+ ret += h(provider.name, 3)
+
+ unless features.empty?
+ ret += option(:features, provider.features.collect { |a| a.to_s }.sort.join(", "))
+ end
+ if provider.suitable?
+ ret += option(:suitable?, "true")
+ else
+ ret += option(:suitable?, "false")
+ end
+ ret += "\n" # add a trailing newline
+ end
+ ret += "\n"
+ end
+
+ ret += "\n"
+
+ ret
+end
+providers.header = "
+Puppet resource types are usually backed by multiple implementations called ``providers``,
+which handle variance between platforms and tools.
+
+Different providers are suitable or unsuitable on different platforms based on things
+like the presence of a given tool.
+
+Here are all of the provider-backed types and their different providers. Any unmentioned
+types do not use providers yet.
+
+"