diff options
| author | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-18 15:23:03 -0700 |
|---|---|---|
| committer | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-19 10:53:42 -0700 |
| commit | 5938452dccc8c925bc6275a62ae96f50916cc239 (patch) | |
| tree | 16553eb01610d066c529230cf5f5c4f546a63d75 /lib/puppet | |
| parent | 5258e06a39e11c2cc1951af9235605a29a155c36 (diff) | |
| download | puppet-5938452dccc8c925bc6275a62ae96f50916cc239.tar.gz puppet-5938452dccc8c925bc6275a62ae96f50916cc239.tar.xz puppet-5938452dccc8c925bc6275a62ae96f50916cc239.zip | |
(#7013) Strip out old face-wide rendering defaults.
Now we want to support action-based rendering, it is super-hard to define the
semantics around defaulting where things are unspecified: the execution
context (CLI, HTTP, etc) vs the face, vs the action all have different
semantics.
Without solving the problem of how we express all that context and those
semantics down in the action, especially one written by a third party, this
just becomes a box of counter-intuitive and annoying semantics and edge-cases.
Reviewed-By: Max Martin <max@puppetlabs.com>
Diffstat (limited to 'lib/puppet')
| -rw-r--r-- | lib/puppet/application/face_base.rb | 15 | ||||
| -rw-r--r-- | lib/puppet/face/facts.rb | 4 | ||||
| -rw-r--r-- | lib/puppet/face/node.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/interface.rb | 5 | ||||
| -rw-r--r-- | lib/puppet/interface/action.rb | 4 |
5 files changed, 12 insertions, 18 deletions
diff --git a/lib/puppet/application/face_base.rb b/lib/puppet/application/face_base.rb index 947204d68..456f0c610 100644 --- a/lib/puppet/application/face_base.rb +++ b/lib/puppet/application/face_base.rb @@ -15,8 +15,8 @@ class Puppet::Application::FaceBase < Puppet::Application Puppet::Util::Log.level = :info end - option("--format FORMAT") do |arg| - @format = arg.to_sym + option("--render-as FORMAT") do |arg| + @render_as = arg.to_sym end option("--mode RUNMODE", "-r") do |arg| @@ -26,7 +26,7 @@ class Puppet::Application::FaceBase < Puppet::Application end - attr_accessor :face, :action, :type, :arguments, :format + attr_accessor :face, :action, :type, :arguments, :render_as attr_writer :exit_code # This allows you to set the exit code if you don't want to just exit @@ -37,8 +37,8 @@ class Puppet::Application::FaceBase < Puppet::Application # Override this if you need custom rendering. def render(result) - if format then - render_method = Puppet::Network::FormatHandler.format(format).render_method + if render_as then + render_method = Puppet::Network::FormatHandler.format(render_as).render_method if render_method == "to_pson" jj result else @@ -85,9 +85,8 @@ class Puppet::Application::FaceBase < Puppet::Application # REVISIT: These should be configurable versions, through a global # '--version' option, but we don't implement that yet... --daniel 2011-03-29 - @type = self.class.name.to_s.sub(/.+:/, '').downcase.to_sym - @face = Puppet::Face[@type, :current] - @format = @face.default_format + @type = self.class.name.to_s.sub(/.+:/, '').downcase.to_sym + @face = Puppet::Face[@type, :current] # Now, walk the command line and identify the action. We skip over # arguments based on introspecting the action and all, and find the first diff --git a/lib/puppet/face/facts.rb b/lib/puppet/face/facts.rb index 8668b2531..04eab93a5 100644 --- a/lib/puppet/face/facts.rb +++ b/lib/puppet/face/facts.rb @@ -2,10 +2,10 @@ require 'puppet/face/indirector' require 'puppet/node/facts' Puppet::Face::Indirector.define(:facts, '0.0.1') do - set_default_format :yaml - # Upload our facts to the server action(:upload) do + render_as :yaml + when_invoked do |options| Puppet::Node::Facts.indirection.terminus_class = :facter facts = Puppet::Node::Facts.indirection.find(Puppet[:certname]) diff --git a/lib/puppet/face/node.rb b/lib/puppet/face/node.rb index fd1a548d6..12336df8f 100644 --- a/lib/puppet/face/node.rb +++ b/lib/puppet/face/node.rb @@ -1,5 +1,3 @@ require 'puppet/face/indirector' - Puppet::Face::Indirector.define(:node, '0.0.1') do - set_default_format :yaml end diff --git a/lib/puppet/interface.rb b/lib/puppet/interface.rb index 51ae0cdc1..398d85403 100644 --- a/lib/puppet/interface.rb +++ b/lib/puppet/interface.rb @@ -62,10 +62,8 @@ class Puppet::Interface end end - attr_accessor :default_format - def set_default_format(format) - self.default_format = format.to_sym + Puppet.warning("set_default_format is deprecated (and ineffective); use render_as on your actions instead.") end attr_accessor :summary @@ -83,7 +81,6 @@ class Puppet::Interface @name = Puppet::Interface::FaceCollection.underscorize(name) @version = version - @default_format = :pson instance_eval(&block) if block_given? end diff --git a/lib/puppet/interface/action.rb b/lib/puppet/interface/action.rb index 53c40bc51..8bacc216d 100644 --- a/lib/puppet/interface/action.rb +++ b/lib/puppet/interface/action.rb @@ -9,9 +9,9 @@ class Puppet::Interface::Action @name = name.to_sym attrs.each do |k, v| send("#{k}=", v) end - @options = {} + @options = {} @when_rendering = {} - @render_as = :for_humans + @render_as = :for_humans end # This is not nice, but it is the easiest way to make us behave like the |
