# File lib/puppet/indirector/face.rb, line 32 def self.indirections Puppet::Indirector::Indirection.instances.collect { |t| t.to_s }.sort end
# File lib/puppet/indirector/face.rb, line 36 def self.terminus_classes(indirection) Puppet::Indirector::Terminus.terminus_classes(indirection.to_sym).collect { |t| t.to_s }.sort end
# File lib/puppet/indirector/face.rb, line 40 def call_indirection_method(method, key, options) begin result = indirection.__send__(method, key, options) rescue => detail message = "Could not call '#{method}' on '#{indirection_name}': #{detail}" Puppet.log_exception(detail, message) raise message end return result end
Return an indirection associated with a face, if one exists; One usually does.
# File lib/puppet/indirector/face.rb, line 123 def indirection unless @indirection @indirection = Puppet::Indirector::Indirection.instance(indirection_name) @indirection or raise "Could not find terminus for #{indirection_name}" end @indirection end
# File lib/puppet/indirector/face.rb, line 111 def indirection_name @indirection_name || name.to_sym end
Here’s your opportunity to override the indirection name. By default it will be the same name as the face.
# File lib/puppet/indirector/face.rb, line 117 def set_indirection_name(name) @indirection_name = name end
# File lib/puppet/indirector/face.rb, line 131 def set_terminus(from) begin indirection.terminus_class = from rescue => detail raise "Could not set '#{indirection.name}' terminus to '#{from}' (#{detail}); valid terminus types are #{self.class.terminus_classes(indirection.name).join(", ") }" end end