diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-05-07 18:59:40 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-05-07 18:59:40 +0000 |
| commit | f42a755cc2e4bc77880dec9571ccd11f33f2737f (patch) | |
| tree | 733e1c1681b9c325f269da81ab5faf1f58494a67 /lib/puppet/network/handler | |
| parent | 53f16125761400df4fb1b99159c6b3bab8f5f397 (diff) | |
| download | puppet-f42a755cc2e4bc77880dec9571ccd11f33f2737f.tar.gz puppet-f42a755cc2e4bc77880dec9571ccd11f33f2737f.tar.xz puppet-f42a755cc2e4bc77880dec9571ccd11f33f2737f.zip | |
Adding a module to abstract using Autoload to load and manage instances
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2476 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/network/handler')
| -rwxr-xr-x | lib/puppet/network/handler/report.rb | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/lib/puppet/network/handler/report.rb b/lib/puppet/network/handler/report.rb index 574970fc4..e21acb810 100755 --- a/lib/puppet/network/handler/report.rb +++ b/lib/puppet/network/handler/report.rb @@ -1,7 +1,10 @@ +require 'puppet/util/instance_loader' + # A simple server for triggering a new run on a Puppet client. class Puppet::Network::Handler class Report < Handler extend Puppet::Util::ClassGen + extend Puppet::Util::InstanceLoader module ReportBase include Puppet::Util::Docs @@ -20,8 +23,8 @@ class Puppet::Network::Handler iface.add_method("string report(array)") } - @reports = {} - @reportloader = Puppet::Util::Autoload.new(self, "puppet/reports") + # Set up autoloading and retrieving of reports. + autoload :report, 'puppet/reports' class << self attr_reader :hooks @@ -31,7 +34,7 @@ class Puppet::Network::Handler def self.newreport(name, options = {}, &block) name = symbolize(name) - mod = genmodule(name, :extend => ReportBase, :hash => @reports, :block => block) + mod = genmodule(name, :extend => ReportBase, :hash => instance_hash(:report), :block => block) if options[:useyaml] mod.useyaml = true @@ -42,31 +45,12 @@ class Puppet::Network::Handler end end - # Load a report. - def self.report(name) - name = name.intern if name.is_a? String - unless @reports.include? name - if @reportloader.load(name) - unless @reports.include? name - Puppet.warning( - "Loaded report file for %s but report was not defined" % - name - ) - return nil - end - else - return nil - end - end - @reports[symbolize(name)] - end - # Collect the docs for all of our reports. def self.reportdocs docs = "" # Use this method so they all get loaded - reports.sort { |a,b| a.to_s <=> b.to_s }.each do |name| + loaded_instances(:report).sort { |a,b| a.to_s <=> b.to_s }.each do |name| mod = self.report(name) docs += "%s\n%s\n" % [name, "-" * name.to_s.length] @@ -78,7 +62,7 @@ class Puppet::Network::Handler # List each of the reports. def self.reports - @reportloader.loadall + instance_loader(:report).loadall @reports.keys end |
