summaryrefslogtreecommitdiffstats
path: root/lib/puppet/application/resource.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/application/resource.rb')
-rw-r--r--lib/puppet/application/resource.rb198
1 files changed, 99 insertions, 99 deletions
diff --git a/lib/puppet/application/resource.rb b/lib/puppet/application/resource.rb
index 9e1efe2ef..f55caa58a 100644
--- a/lib/puppet/application/resource.rb
+++ b/lib/puppet/application/resource.rb
@@ -2,117 +2,117 @@ require 'puppet/application'
class Puppet::Application::Resource < Puppet::Application
- should_not_parse_config
-
- attr_accessor :host, :extra_params
-
- def preinit
- @extra_params = []
- @host = nil
- Facter.loadfacts
+ should_not_parse_config
+
+ attr_accessor :host, :extra_params
+
+ def preinit
+ @extra_params = []
+ @host = nil
+ Facter.loadfacts
+ end
+
+ option("--debug","-d")
+ option("--verbose","-v")
+ option("--edit","-e")
+
+ option("--host HOST","-H") do |arg|
+ @host = arg
+ end
+
+ option("--types", "-t") do |arg|
+ types = []
+ Puppet::Type.loadall
+ Puppet::Type.eachtype do |t|
+ next if t.name == :component
+ types << t.name.to_s
end
-
- option("--debug","-d")
- option("--verbose","-v")
- option("--edit","-e")
-
- option("--host HOST","-H") do |arg|
- @host = arg
+ puts types.sort
+ exit
+ end
+
+ option("--param PARAM", "-p") do |arg|
+ @extra_params << arg.to_sym
+ end
+
+ def main
+ args = command_line.args
+ type = args.shift or raise "You must specify the type to display"
+ typeobj = Puppet::Type.type(type) or raise "Could not find type #{type}"
+ name = args.shift
+ params = {}
+ args.each do |setting|
+ if setting =~ /^(\w+)=(.+)$/
+ params[$1] = $2
+ else
+ raise "Invalid parameter setting #{setting}"
+ end
end
- option("--types", "-t") do |arg|
- types = []
- Puppet::Type.loadall
- Puppet::Type.eachtype do |t|
- next if t.name == :component
- types << t.name.to_s
- end
- puts types.sort
- exit
- end
+ raise "You cannot edit a remote host" if options[:edit] and @host
- option("--param PARAM", "-p") do |arg|
- @extra_params << arg.to_sym
- end
+ properties = typeobj.properties.collect { |s| s.name }
- def main
- args = command_line.args
- type = args.shift or raise "You must specify the type to display"
- typeobj = Puppet::Type.type(type) or raise "Could not find type #{type}"
- name = args.shift
- params = {}
- args.each do |setting|
- if setting =~ /^(\w+)=(.+)$/
- params[$1] = $2
- else
- raise "Invalid parameter setting #{setting}"
- end
+ format = proc {|trans|
+ trans.dup.collect do |param, value|
+ if value.nil? or value.to_s.empty?
+ trans.delete(param)
+ elsif value.to_s == "absent" and param.to_s != "ensure"
+ trans.delete(param)
end
- raise "You cannot edit a remote host" if options[:edit] and @host
-
- properties = typeobj.properties.collect { |s| s.name }
-
- format = proc {|trans|
- trans.dup.collect do |param, value|
- if value.nil? or value.to_s.empty?
- trans.delete(param)
- elsif value.to_s == "absent" and param.to_s != "ensure"
- trans.delete(param)
- end
-
- trans.delete(param) unless properties.include?(param) or @extra_params.include?(param)
- end
- trans.to_manifest
- }
-
- if @host
- Puppet::Resource.indirection.terminus_class = :rest
- port = Puppet[:puppetport]
- key = ["https://#{host}:#{port}", "production", "resources", type, name].join('/')
- else
- key = [type, name].join('/')
- end
+ trans.delete(param) unless properties.include?(param) or @extra_params.include?(param)
+ end
+ trans.to_manifest
+ }
+
+ if @host
+ Puppet::Resource.indirection.terminus_class = :rest
+ port = Puppet[:puppetport]
+ key = ["https://#{host}:#{port}", "production", "resources", type, name].join('/')
+ else
+ key = [type, name].join('/')
+ end
- text = if name
- if params.empty?
- [ Puppet::Resource.find( key ) ]
- else
- [ Puppet::Resource.new( type, name, :parameters => params ).save( key ) ]
- end
- else
- Puppet::Resource.search( key, {} )
- end.map(&format).join("\n")
-
- if options[:edit]
- file = "/tmp/x2puppet-#{Process.pid}.pp"
- begin
- File.open(file, "w") do |f|
- f.puts text
- end
- ENV["EDITOR"] ||= "vi"
- system(ENV["EDITOR"], file)
- system("puppet -v #{file}")
- ensure
- #if FileTest.exists? file
- # File.unlink(file)
- #end
- end
- else
- puts text
+ text = if name
+ if params.empty?
+ [ Puppet::Resource.find( key ) ]
+ else
+ [ Puppet::Resource.new( type, name, :parameters => params ).save( key ) ]
+ end
+ else
+ Puppet::Resource.search( key, {} )
+ end.map(&format).join("\n")
+
+ if options[:edit]
+ file = "/tmp/x2puppet-#{Process.pid}.pp"
+ begin
+ File.open(file, "w") do |f|
+ f.puts text
end
+ ENV["EDITOR"] ||= "vi"
+ system(ENV["EDITOR"], file)
+ system("puppet -v #{file}")
+ ensure
+ #if FileTest.exists? file
+ # File.unlink(file)
+ #end
+ end
+ else
+ puts text
end
+ end
- def setup
- Puppet::Util::Log.newdestination(:console)
+ def setup
+ Puppet::Util::Log.newdestination(:console)
- # Now parse the config
- Puppet.parse_config
+ # Now parse the config
+ Puppet.parse_config
- 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