summaryrefslogtreecommitdiffstats
path: root/lib/puppet/application/apply.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/application/apply.rb')
-rw-r--r--lib/puppet/application/apply.rb258
1 files changed, 129 insertions, 129 deletions
diff --git a/lib/puppet/application/apply.rb b/lib/puppet/application/apply.rb
index cd4c75d75..bb4186dbd 100644
--- a/lib/puppet/application/apply.rb
+++ b/lib/puppet/application/apply.rb
@@ -2,164 +2,164 @@ require 'puppet/application'
class Puppet::Application::Apply < Puppet::Application
- should_parse_config
-
- option("--debug","-d")
- option("--execute EXECUTE","-e") do |arg|
- options[:code] = arg
+ should_parse_config
+
+ option("--debug","-d")
+ option("--execute EXECUTE","-e") do |arg|
+ options[:code] = arg
+ end
+ option("--loadclasses","-L")
+ option("--verbose","-v")
+ option("--use-nodes")
+ option("--detailed-exitcodes")
+
+ option("--apply catalog", "-a catalog") do |arg|
+ options[:catalog] = arg
+ end
+
+ option("--logdest LOGDEST", "-l") do |arg|
+ begin
+ Puppet::Util::Log.newdestination(arg)
+ options[:logset] = true
+ rescue => detail
+ $stderr.puts detail.to_s
end
- option("--loadclasses","-L")
- option("--verbose","-v")
- option("--use-nodes")
- option("--detailed-exitcodes")
-
- option("--apply catalog", "-a catalog") do |arg|
- options[:catalog] = arg
+ end
+
+ def run_command
+ if options[:catalog]
+ apply
+ elsif Puppet[:parseonly]
+ parseonly
+ else
+ main
end
+ end
- option("--logdest LOGDEST", "-l") do |arg|
- begin
- Puppet::Util::Log.newdestination(arg)
- options[:logset] = true
- rescue => detail
- $stderr.puts detail.to_s
- end
+ def apply
+ if options[:catalog] == "-"
+ text = $stdin.read
+ else
+ text = File.read(options[:catalog])
end
- def run_command
- if options[:catalog]
- apply
- elsif Puppet[:parseonly]
- parseonly
- else
- main
- end
+ begin
+ catalog = Puppet::Resource::Catalog.convert_from(Puppet::Resource::Catalog.default_format,text)
+ catalog = Puppet::Resource::Catalog.pson_create(catalog) unless catalog.is_a?(Puppet::Resource::Catalog)
+ rescue => detail
+ raise Puppet::Error, "Could not deserialize catalog from pson: #{detail}"
end
- def apply
- if options[:catalog] == "-"
- text = $stdin.read
- else
- text = File.read(options[:catalog])
- end
+ catalog = catalog.to_ral
- begin
- catalog = Puppet::Resource::Catalog.convert_from(Puppet::Resource::Catalog.default_format,text)
- catalog = Puppet::Resource::Catalog.pson_create(catalog) unless catalog.is_a?(Puppet::Resource::Catalog)
- rescue => detail
- raise Puppet::Error, "Could not deserialize catalog from pson: #{detail}"
- end
+ require 'puppet/configurer'
+ configurer = Puppet::Configurer.new
+ configurer.run :catalog => catalog
+ end
- catalog = catalog.to_ral
-
- require 'puppet/configurer'
- configurer = Puppet::Configurer.new
- configurer.run :catalog => catalog
+ def parseonly
+ # Set our code or file to use.
+ if options[:code] or command_line.args.length == 0
+ Puppet[:code] = options[:code] || STDIN.read
+ else
+ Puppet[:manifest] = command_line.args.shift
end
-
- def parseonly
- # Set our code or file to use.
- if options[:code] or command_line.args.length == 0
- Puppet[:code] = options[:code] || STDIN.read
- else
- Puppet[:manifest] = command_line.args.shift
- end
- begin
- Puppet::Node::Environment.new(Puppet[:environment]).known_resource_types
- rescue => detail
- Puppet.err detail
- exit 1
- end
- exit 0
+ begin
+ Puppet::Node::Environment.new(Puppet[:environment]).known_resource_types
+ rescue => detail
+ Puppet.err detail
+ exit 1
+ end
+ exit 0
+ end
+
+ def main
+ # Set our code or file to use.
+ if options[:code] or command_line.args.length == 0
+ Puppet[:code] = options[:code] || STDIN.read
+ else
+ Puppet[:manifest] = command_line.args.shift
end
- def main
- # Set our code or file to use.
- if options[:code] or command_line.args.length == 0
- Puppet[:code] = options[:code] || STDIN.read
- else
- Puppet[:manifest] = command_line.args.shift
- end
+ # Collect our facts.
+ unless facts = Puppet::Node::Facts.find(Puppet[:certname])
+ raise "Could not find facts for #{Puppet[:certname]}"
+ end
- # Collect our facts.
- unless facts = Puppet::Node::Facts.find(Puppet[:certname])
- raise "Could not find facts for #{Puppet[:certname]}"
- end
+ # Find our Node
+ unless node = Puppet::Node.find(Puppet[:certname])
+ raise "Could not find node #{Puppet[:certname]}"
+ end
- # Find our Node
- unless node = Puppet::Node.find(Puppet[:certname])
- raise "Could not find node #{Puppet[:certname]}"
- end
+ # Merge in the facts.
+ node.merge(facts.values)
- # Merge in the facts.
- node.merge(facts.values)
-
- # Allow users to load the classes that puppet agent creates.
- if options[:loadclasses]
- file = Puppet[:classfile]
- if FileTest.exists?(file)
- unless FileTest.readable?(file)
- $stderr.puts "#{file} is not readable"
- exit(63)
- end
- node.classes = File.read(file).split(/[\s\n]+/)
- end
+ # Allow users to load the classes that puppet agent creates.
+ if options[:loadclasses]
+ file = Puppet[:classfile]
+ if FileTest.exists?(file)
+ unless FileTest.readable?(file)
+ $stderr.puts "#{file} is not readable"
+ exit(63)
end
+ node.classes = File.read(file).split(/[\s\n]+/)
+ end
+ end
- begin
- # Compile our catalog
- starttime = Time.now
- catalog = Puppet::Resource::Catalog.find(node.name, :use_node => node)
+ begin
+ # Compile our catalog
+ starttime = Time.now
+ catalog = Puppet::Resource::Catalog.find(node.name, :use_node => node)
- # Translate it to a RAL catalog
- catalog = catalog.to_ral
+ # Translate it to a RAL catalog
+ catalog = catalog.to_ral
- catalog.finalize
+ catalog.finalize
- catalog.retrieval_duration = Time.now - starttime
+ catalog.retrieval_duration = Time.now - starttime
- require 'puppet/configurer'
- configurer = Puppet::Configurer.new
- configurer.execute_prerun_command
+ require 'puppet/configurer'
+ configurer = Puppet::Configurer.new
+ configurer.execute_prerun_command
- # And apply it
- transaction = catalog.apply
+ # And apply it
+ transaction = catalog.apply
- configurer.execute_postrun_command
+ configurer.execute_postrun_command
- status = 0
- if not Puppet[:noop] and options[:detailed_exitcodes]
- transaction.generate_report
- exit(transaction.report.exit_status)
- else
- exit(0)
- end
- rescue => detail
- puts detail.backtrace if Puppet[:trace]
- $stderr.puts detail.message
- exit(1)
- end
+ status = 0
+ if not Puppet[:noop] and options[:detailed_exitcodes]
+ transaction.generate_report
+ exit(transaction.report.exit_status)
+ else
+ exit(0)
+ end
+ rescue => detail
+ puts detail.backtrace if Puppet[:trace]
+ $stderr.puts detail.message
+ exit(1)
end
+ end
- def setup
- exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
+ def setup
+ exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
- # If noop is set, then also enable diffs
- Puppet[:show_diff] = true if Puppet[:noop]
+ # If noop is set, then also enable diffs
+ Puppet[:show_diff] = true if Puppet[:noop]
- Puppet::Util::Log.newdestination(:console) unless options[:logset]
- client = nil
- server = nil
+ Puppet::Util::Log.newdestination(:console) unless options[:logset]
+ client = nil
+ server = nil
- trap(:INT) do
- $stderr.puts "Exiting"
- exit(1)
- end
+ trap(:INT) do
+ $stderr.puts "Exiting"
+ exit(1)
+ end
- if options[:debug]
- Puppet::Util::Log.level = :debug
- elsif options[:verbose]
- Puppet::Util::Log.level = :info
- end
+ if options[:debug]
+ Puppet::Util::Log.level = :debug
+ elsif options[:verbose]
+ Puppet::Util::Log.level = :info
end
+ end
end