module PuppetRepl::Support::Node
Public Instance Methods
convert_remote_node(remote_node)
click to toggle source
this is a hack to get around that the puppet node fact face does not return a proper node object with the facts hash populated returns a node object with a proper facts hash
# File lib/puppet-repl/support/node.rb, line 56 def convert_remote_node(remote_node) options = {} # remove trusted data as it will later get populated during compilation parameters = remote_node.parameters.dup trusted_data = parameters.delete('trusted') options[:parameters] = parameters || {} options[:facts] = Puppet::Node::Facts.new(remote_node.name,remote_node.parameters) options[:classes] = remote_node.classes options[:environment] = puppet_environment node_object = Puppet::Node.new(remote_node.name, options) node_object.add_server_facts(server_facts) if node_object.respond_to?(:add_server_facts) node_object.trusted_data = trusted_data node_object end
create_node()
click to toggle source
creates a node object using defaults or gets the remote node object if the remote_node_name
is defined
# File lib/puppet-repl/support/node.rb, line 8 def create_node Puppet[:trusted_server_facts] = true if Puppet.version.to_f >= 4.1 if remote_node_name # refetch node_obj = set_node_from_name(remote_node_name) end unless node_obj options = {} options[:parameters] = default_facts.values options[:facts] = default_facts options[:classes] = [] options[:environment] = puppet_environment name = default_facts.values['fqdn'] node_obj = Puppet::Node.new(name, options) node_obj.add_server_facts(server_facts) if node_obj.respond_to?(:add_server_facts) node_obj end node_obj end
get_remote_node(name)
click to toggle source
# File lib/puppet-repl/support/node.rb, line 46 def get_remote_node(name) indirection = Puppet::Indirector::Indirection.instance(:node) indirection.terminus_class = 'rest' remote_node = indirection.find(name, :environment => puppet_environment) remote_node end
node()
click to toggle source
@return [node] puppet node object
# File lib/puppet-repl/support/node.rb, line 42 def node @node ||= create_node end
remote_node_name()
click to toggle source
# File lib/puppet-repl/support/node.rb, line 37 def remote_node_name @remote_node_name end
remote_node_name=(name)
click to toggle source
# File lib/puppet-repl/support/node.rb, line 33 def remote_node_name=(name) @remote_node_name = name end
set_node(value)
click to toggle source
# File lib/puppet-repl/support/node.rb, line 85 def set_node(value) @node = value end
set_node_from_name(name)
click to toggle source
query the remote puppet server and retrieve the node object
# File lib/puppet-repl/support/node.rb, line 73 def set_node_from_name(name) out_buffer.puts ("Fetching node #{name}") remote_node = get_remote_node(name) if remote_node and remote_node.parameters.empty? remote_node_name = nil # clear out the remote name raise PuppetRepl::Exception::UndefinedNode.new(:name => remote_node.name) end remote_node_name = remote_node.name node_object = convert_remote_node(remote_node) set_node(node_object) end
set_remote_node_name(name)
click to toggle source
# File lib/puppet-repl/support/node.rb, line 29 def set_remote_node_name(name) @remote_node_name = name end