diff options
| author | Jesse Wolfe <jes5199@gmail.com> | 2010-05-12 15:19:33 -0700 |
|---|---|---|
| committer | test branch <puppet-dev@googlegroups.com> | 2010-02-17 06:50:53 -0800 |
| commit | 8f4d644210e7a6afc9e08d65a0c60987171747c6 (patch) | |
| tree | db5570739e34e4177b8417ba65f9b8a53ea5d4bc /lib/puppet/application | |
| parent | 6b26a7c0f1793a74ca778383125b7e4618fcc9e2 (diff) | |
| download | puppet-8f4d644210e7a6afc9e08d65a0c60987171747c6.tar.gz puppet-8f4d644210e7a6afc9e08d65a0c60987171747c6.tar.xz puppet-8f4d644210e7a6afc9e08d65a0c60987171747c6.zip | |
Feature #2935: lazify require graph for applications
Because environments have to declare their mode before puppet tries to
load defaults.rb, it reduces the complexity considerably to have
application classes to load their lib dependencies at the last possible
moment.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
Diffstat (limited to 'lib/puppet/application')
| -rw-r--r-- | lib/puppet/application/agent.rb | 8 | ||||
| -rw-r--r-- | lib/puppet/application/apply.rb | 8 | ||||
| -rw-r--r-- | lib/puppet/application/cert.rb | 4 | ||||
| -rw-r--r-- | lib/puppet/application/doc.rb | 25 | ||||
| -rw-r--r-- | lib/puppet/application/filebucket.rb | 3 | ||||
| -rw-r--r-- | lib/puppet/application/kick.rb | 6 | ||||
| -rw-r--r-- | lib/puppet/application/master.rb | 6 | ||||
| -rw-r--r-- | lib/puppet/application/queue.rb | 6 |
8 files changed, 27 insertions, 39 deletions
diff --git a/lib/puppet/application/agent.rb b/lib/puppet/application/agent.rb index 093e5b94d..8a8e3cad3 100644 --- a/lib/puppet/application/agent.rb +++ b/lib/puppet/application/agent.rb @@ -1,9 +1,4 @@ -require 'puppet' require 'puppet/application' -require 'puppet/agent' -require 'puppet/daemon' -require 'puppet/configurer' -require 'puppet/network/client' class Puppet::Application::Agent < Puppet::Application @@ -39,6 +34,7 @@ class Puppet::Application::Agent < Puppet::Application @explicit_waitforcert = false @args = {} + require 'puppet/daemon' @daemon = Puppet::Daemon.new @daemon.argv = ARGV.dup end @@ -255,6 +251,8 @@ class Puppet::Application::Agent < Puppet::Application # We need tomake the client either way, we just don't start it # if --no-client is set. + require 'puppet/agent' + require 'puppet/configurer' @agent = Puppet::Agent.new(Puppet::Configurer) enable_disable_client(@agent) if options[:enable] or options[:disable] diff --git a/lib/puppet/application/apply.rb b/lib/puppet/application/apply.rb index fde0c9b8d..b6ce5aabf 100644 --- a/lib/puppet/application/apply.rb +++ b/lib/puppet/application/apply.rb @@ -1,8 +1,4 @@ -require 'puppet' require 'puppet/application' -require 'puppet/configurer' -require 'puppet/network/handler' -require 'puppet/network/client' class Puppet::Application::Apply < Puppet::Application @@ -41,8 +37,6 @@ class Puppet::Application::Apply < Puppet::Application end def apply - require 'puppet/configurer' - if options[:catalog] == "-" text = $stdin.read else @@ -60,6 +54,7 @@ class Puppet::Application::Apply < Puppet::Application catalog = catalog.to_ral + require 'puppet/configurer' configurer = Puppet::Configurer.new configurer.run :catalog => catalog end @@ -127,6 +122,7 @@ class Puppet::Application::Apply < Puppet::Application catalog.retrieval_duration = Time.now - starttime + require 'puppet/configurer' configurer = Puppet::Configurer.new configurer.execute_prerun_command diff --git a/lib/puppet/application/cert.rb b/lib/puppet/application/cert.rb index 80ccc46f9..33410eec5 100644 --- a/lib/puppet/application/cert.rb +++ b/lib/puppet/application/cert.rb @@ -1,6 +1,4 @@ -require 'puppet' require 'puppet/application' -require 'puppet/ssl/certificate_authority' class Puppet::Application::Cert < Puppet::Application @@ -9,6 +7,7 @@ class Puppet::Application::Cert < Puppet::Application attr_accessor :mode, :all, :ca, :digest, :signed def find_mode(opt) + require 'puppet/ssl/certificate_authority' modes = Puppet::SSL::CertificateAuthority::Interface::INTERFACE_METHODS tmp = opt.sub("--", '').to_sym @mode = modes.include?(tmp) ? tmp : nil @@ -34,6 +33,7 @@ class Puppet::Application::Cert < Puppet::Application Puppet::Util::Log.level = :debug end + require 'puppet/ssl/certificate_authority/interface' Puppet::SSL::CertificateAuthority::Interface::INTERFACE_METHODS.reject {|m| m == :destroy }.each do |method| option("--#{method}", "-%s" % method.to_s[0,1] ) do find_mode("--#{method}") diff --git a/lib/puppet/application/doc.rb b/lib/puppet/application/doc.rb index 74cde98bd..326265e4c 100644 --- a/lib/puppet/application/doc.rb +++ b/lib/puppet/application/doc.rb @@ -1,11 +1,4 @@ -require 'puppet' require 'puppet/application' -require 'puppet/util/reference' -require 'puppet/network/handler' -require 'puppet/util/rdoc' - -$tab = " " -Reference = Puppet::Util::Reference class Puppet::Application::Doc < Puppet::Application @@ -28,7 +21,8 @@ class Puppet::Application::Doc < Puppet::Application option("--format FORMAT", "-f") do |arg| method = "to_%s" % arg - if Reference.method_defined?(method) + require 'puppet/util/reference' + if Puppet::Util::Reference.method_defined?(method) options[:format] = method else raise "Invalid output format %s" % arg @@ -36,7 +30,8 @@ class Puppet::Application::Doc < Puppet::Application end option("--mode MODE", "-m") do |arg| - if Reference.modes.include?(arg) or arg.intern==:rdoc + require 'puppet/util/reference' + if Puppet::Util::Reference.modes.include?(arg) or arg.intern==:rdoc options[:mode] = arg.intern else raise "Invalid output mode %s" % arg @@ -44,7 +39,8 @@ class Puppet::Application::Doc < Puppet::Application end option("--list", "-l") do |arg| - puts Reference.references.collect { |r| Reference.reference(r).doc }.join("\n") + require 'puppet/util/reference' + puts Puppet::Util::Reference.references.collect { |r| Puppet::Util::Reference.reference(r).doc }.join("\n") exit(0) end @@ -77,6 +73,7 @@ class Puppet::Application::Doc < Puppet::Application ) Puppet.settings[:document_all] = options[:all] || false begin + require 'puppet/util/rdoc' if @manifest Puppet::Util::RDoc.manifestdoc(files) else @@ -94,6 +91,7 @@ class Puppet::Application::Doc < Puppet::Application end def trac + require 'puppet/util/reference' options[:references].each do |name| section = Puppet::Util::Reference.reference(name) or raise "Could not find section %s" % name unless options[:mode] == :pdf @@ -106,6 +104,7 @@ class Puppet::Application::Doc < Puppet::Application text = "" with_contents = false exit_code = 0 + require 'puppet/util/reference' options[:references].sort { |a,b| a.to_s <=> b.to_s }.each do |name| raise "Could not find reference %s" % name unless section = Puppet::Util::Reference.reference(name) @@ -135,6 +134,7 @@ class Puppet::Application::Doc < Puppet::Application with_contents = true end exit_code = 0 + require 'puppet/util/reference' options[:references].sort { |a,b| a.to_s <=> b.to_s }.each do |name| raise "Could not find reference %s" % name unless section = Puppet::Util::Reference.reference(name) @@ -182,8 +182,9 @@ class Puppet::Application::Doc < Puppet::Application def setup_reference if options[:all] # Don't add dynamic references to the "all" list. - options[:references] = Reference.references.reject do |ref| - Reference.reference(ref).dynamic? + require 'puppet/util/reference' + options[:references] = Puppet::Util::Reference.references.reject do |ref| + Puppet::Util::Reference.reference(ref).dynamic? end end diff --git a/lib/puppet/application/filebucket.rb b/lib/puppet/application/filebucket.rb index 8e930f5e4..8f9e91771 100644 --- a/lib/puppet/application/filebucket.rb +++ b/lib/puppet/application/filebucket.rb @@ -1,6 +1,4 @@ -require 'puppet' require 'puppet/application' -require 'puppet/file_bucket/dipper' class Puppet::Application::Filebucket < Puppet::Application @@ -72,6 +70,7 @@ class Puppet::Application::Filebucket < Puppet::Application exit(Puppet.settings.print_configs ? 0 : 1) end + require 'puppet/file_bucket/dipper' begin if options[:local] or options[:bucket] path = options[:bucket] || Puppet[:bucketdir] diff --git a/lib/puppet/application/kick.rb b/lib/puppet/application/kick.rb index 37d3e533f..0dd4d39ad 100644 --- a/lib/puppet/application/kick.rb +++ b/lib/puppet/application/kick.rb @@ -1,9 +1,5 @@ -require 'puppet' require 'puppet/application' -Puppet.warning "RubyGems not installed" unless Puppet.features.rubygems? -Puppet.warning "Failed to load ruby LDAP library. LDAP functionality will not be available" unless Puppet.features.ldap? - class Puppet::Application::Kick < Puppet::Application should_not_parse_config @@ -52,6 +48,8 @@ class Puppet::Application::Kick < Puppet::Application def main require 'puppet/network/client' + + Puppet.warning "Failed to load ruby LDAP library. LDAP functionality will not be available" unless Puppet.features.ldap? require 'puppet/util/ldap/connection' todo = @hosts.dup diff --git a/lib/puppet/application/master.rb b/lib/puppet/application/master.rb index 44c8c027b..993d7df44 100644 --- a/lib/puppet/application/master.rb +++ b/lib/puppet/application/master.rb @@ -1,8 +1,4 @@ -require 'puppet' require 'puppet/application' -require 'puppet/daemon' -require 'puppet/network/server' -require 'puppet/network/http/rack' if Puppet.features.rack? class Puppet::Application::Master < Puppet::Application @@ -37,6 +33,7 @@ class Puppet::Application::Master < Puppet::Application end # Create this first-off, so we have ARGV + require 'puppet/daemon' @daemon = Puppet::Daemon.new @daemon.argv = ARGV.dup end @@ -108,6 +105,7 @@ class Puppet::Application::Master < Puppet::Application end unless options[:rack] + require 'puppet/network/server' @daemon.server = Puppet::Network::Server.new(:xmlrpc_handlers => xmlrpc_handlers) @daemon.daemonize if Puppet[:daemonize] else diff --git a/lib/puppet/application/queue.rb b/lib/puppet/application/queue.rb index 4b3aa57b5..ce5323505 100644 --- a/lib/puppet/application/queue.rb +++ b/lib/puppet/application/queue.rb @@ -1,8 +1,4 @@ -require 'puppet' -require 'puppet/daemon' require 'puppet/application' -require 'puppet/resource/catalog' -require 'puppet/indirector/catalog/queue' require 'puppet/util' class Puppet::Application::Queue < Puppet::Application @@ -11,6 +7,7 @@ class Puppet::Application::Queue < Puppet::Application attr_accessor :daemon def preinit + require 'puppet/daemon' @daemon = Puppet::Daemon.new @daemon.argv = ARGV.dup Puppet::Util::Log.newdestination(:console) @@ -82,6 +79,7 @@ class Puppet::Application::Queue < Puppet::Application exit(Puppet.settings.print_configs ? 0 : 1) end + require 'puppet/resource/catalog' Puppet::Resource::Catalog.terminus_class = :active_record daemon.daemonize if Puppet[:daemonize] |
