diff options
author | Luke Kanies <luke@madstop.com> | 2007-12-10 21:13:48 -0600 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2007-12-10 21:13:48 -0600 |
commit | f127d04934b679b3e5edd7f55d31342abce3c96e (patch) | |
tree | bb8bc15e086b473bc27104cd6fcbbf548a68678e /lib/puppet/node | |
parent | 7a4ae082c216d68092f140ed1f5cca40ffb1a09e (diff) | |
download | puppet-f127d04934b679b3e5edd7f55d31342abce3c96e.tar.gz puppet-f127d04934b679b3e5edd7f55d31342abce3c96e.tar.xz puppet-f127d04934b679b3e5edd7f55d31342abce3c96e.zip |
Fixing #951 -- external nodes work again, but you have to
set the 'node_terminus' setting to 'exec'.
Diffstat (limited to 'lib/puppet/node')
-rw-r--r-- | lib/puppet/node/searching.rb | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/lib/puppet/node/searching.rb b/lib/puppet/node/searching.rb deleted file mode 100644 index 10dd588ab..000000000 --- a/lib/puppet/node/searching.rb +++ /dev/null @@ -1,106 +0,0 @@ -# The module that handles actually searching for nodes. This is only included -# in the Node class, but it's completely stand-alone functionality, so it's -# worth making it a separate module to simplify testing. -module Puppet::Node::Searching - # Retrieve a node from the node source, with some additional munging - # thrown in for kicks. - def search(key) - return nil unless key - if node = cached?(key) - return node - end - facts = node_facts(key) - node = nil - names = node_names(key, facts) - names.each do |name| - name = name.to_s if name.is_a?(Symbol) - if node = find(name) - #Puppet.info "Found %s in %s" % [name, @source] - break - end - end - - # If they made it this far, we haven't found anything, so look for a - # default node. - unless node or names.include?("default") - if node = find("default") - Puppet.notice "Using default node for %s" % key - end - end - - if node - node.names = names - - cache(node) - - return node - else - return nil - end - end - - private - - # Store the node to make things a bit faster. - def cache(node) - @node_cache ||= {} - @node_cache[node.name] = node - end - - # If the node is cached, return it. - def cached?(name) - # Don't use cache when the filetimeout is set to 0 - return false if [0, "0"].include?(Puppet[:filetimeout]) - @node_cache ||= {} - - if node = @node_cache[name] and Time.now - node.time < Puppet[:filetimeout] - return node - else - return false - end - end - - # Look up the node facts from our fact handler. - def node_facts(key) - if facts = Puppet::Node::Facts.find(key) - facts.values - else - {} - end - end - - # Calculate the list of node names we should use for looking - # up our node. - def node_names(key, facts = nil) - facts ||= node_facts(key) - names = [] - - if hostname = facts["hostname"] - unless hostname == key - names << hostname - end - else - hostname = key - end - - if fqdn = facts["fqdn"] - hostname = fqdn - names << fqdn - end - - # Make sure both the fqdn and the short name of the - # host can be used in the manifest - if hostname =~ /\./ - names << hostname.sub(/\..+/,'') - elsif domain = facts['domain'] - names << hostname + "." + domain - end - - # Sort the names inversely by name length. - names.sort! { |a,b| b.length <=> a.length } - - # And make sure the key is first, since that's the most - # likely usage. - ([key] + names).uniq - end -end |