diff options
-rwxr-xr-x | bin/puppetdoc | 5 | ||||
-rw-r--r-- | lib/puppet/type.rb | 20 | ||||
-rw-r--r-- | lib/puppet/type/zone.rb | 16 | ||||
-rw-r--r-- | test/lib/puppettest.rb | 10 |
4 files changed, 40 insertions, 11 deletions
diff --git a/bin/puppetdoc b/bin/puppetdoc index 3b3d2babb..8185ed773 100755 --- a/bin/puppetdoc +++ b/bin/puppetdoc @@ -89,6 +89,9 @@ rescue GetoptLong::InvalidOption => detail end def scrub(text) + + # Stupid markdown + #text = text.gsub("<%=", "<%=") # For text with no carriage returns, there's nothing to do. if text !~ /\n/ return text @@ -191,6 +194,8 @@ orderInfo: 4 } types = {} + Puppet::Type.loadall + Puppet::Type.eachtype { |type| next if type.name == :puppet next if type.name == :component diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index 0e0628202..13caf1973 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -128,6 +128,11 @@ class Type < Puppet::Element end + # Load all types. Only currently used for documentation. + def self.loadall + typeloader.loadall + end + # Do an on-demand plugin load def self.loadplugin(name) unless Puppet[:pluginpath].split(":").include?(Puppet[:plugindest]) @@ -213,12 +218,11 @@ class Type < Puppet::Element end unless @types.include? name - begin - require "puppet/type/#{name}" + if typeloader.load(name) unless @types.include? name Puppet.warning "Loaded puppet/type/#{name} but no class was created" end - rescue LoadError => detail + else # If we can't load it from there, try loading it as a plugin. loadplugin(name) end @@ -227,6 +231,16 @@ class Type < Puppet::Element @types[name] end + def self.typeloader + unless defined? @typeloader + @typeloader = Puppet::Autoload.new(self, + "puppet/type", :wrap => false + ) + end + + @typeloader + end + # class methods dealing with type instance management public diff --git a/lib/puppet/type/zone.rb b/lib/puppet/type/zone.rb index de94e51ca..c882e199c 100644 --- a/lib/puppet/type/zone.rb +++ b/lib/puppet/type/zone.rb @@ -287,21 +287,23 @@ end desc %{The text to go into the sysidcfg file when the zone is first booted. The best way is to use a template: + <pre><code> # $templatedir/sysidcfg system_locale=en_US timezone=GMT terminal=xterms security_policy=NONE - root_password=<%= password %> + root_password=<%= password %> timeserver=localhost - name_service=DNS {domain_name=<%= domain %> - name_server=<%= nameserver %>} - network_interface=primary {hostname=<%= realhostname %> - ip_address=<%= ip %> - netmask=<%= netmask %> + name_service=DNS {domain_name=<%= domain %> + name_server=<%= nameserver %>} + network_interface=primary {hostname=<%= realhostname %> + ip_address=<%= ip %> + netmask=<%= netmask %> protocol_ipv6=no - default_route=<%= defaultroute %>} + default_route=<%= defaultroute %>} nfs4_domain=dynamic + </code></pre> And then call that: diff --git a/test/lib/puppettest.rb b/test/lib/puppettest.rb index bff410060..4fa7a676f 100644 --- a/test/lib/puppettest.rb +++ b/test/lib/puppettest.rb @@ -179,7 +179,15 @@ module PuppetTest Puppet::Log.close # Just in case there are processes waiting to die... - Process.waitall + require 'timeout' + + begin + Timeout::timeout(5) do + Process.waitall + end + rescue Timeout::Error + # just move on + end if File.stat("/dev/null").mode & 007777 != 0666 File.open("/tmp/nullfailure", "w") { |f| f.puts self.class |