summaryrefslogtreecommitdiffstats
path: root/lib/puppet/node.rb
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-06-10 00:32:56 -0500
committerLuke Kanies <luke@madstop.com>2008-06-15 13:31:47 -0500
commitb7bd427eb98001fb051f0d8910a0a87d1b810c15 (patch)
tree20d83661739e5250d05f5d4abbea32d1eb265089 /lib/puppet/node.rb
parent75c94e342410d4504cf0eb5346d0ea5e54c99008 (diff)
downloadpuppet-b7bd427eb98001fb051f0d8910a0a87d1b810c15.tar.gz
puppet-b7bd427eb98001fb051f0d8910a0a87d1b810c15.tar.xz
puppet-b7bd427eb98001fb051f0d8910a0a87d1b810c15.zip
Converting the Node.node_names class method into an instance method.
This effectively removes the ability to search node termini for multiple names; only the parser will use these names. Temporarily retaining the 'find_by_any_name' method; it will be removed in a later commit.
Diffstat (limited to 'lib/puppet/node.rb')
-rw-r--r--lib/puppet/node.rb100
1 files changed, 37 insertions, 63 deletions
diff --git a/lib/puppet/node.rb b/lib/puppet/node.rb
index 576e2265d..a2024e6b5 100644
--- a/lib/puppet/node.rb
+++ b/lib/puppet/node.rb
@@ -17,32 +17,7 @@ class Puppet::Node
# thrown in for kicks.
def self.find_by_any_name(key)
return nil unless key
-
- node = nil
- names = node_names(key)
- names.each do |name|
- name = name.to_s if name.is_a?(Symbol)
- break if node = find(name)
- 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
-
- return nil unless node
-
- node.names = names
-
- # This is critical, because it forces our node's name to always
- # be the key, which is nearly always the node's certificate.
- # This is how the node instance is linked to the Facts instance,
- # so it quite matters.
- node.name = key
- return node
+ find(key)
end
private
@@ -56,45 +31,9 @@ class Puppet::Node
end
end
- # Calculate the list of node names we should use for looking
- # up our node.
- def self.node_names(key, facts = nil)
- facts ||= node_facts(key)
- names = []
-
- # First, get the fqdn
- unless fqdn = facts["fqdn"]
- if domain = facts["domain"]
- fqdn = facts["hostname"] + "." + facts["domain"]
- end
- end
-
- # Now that we (might) have the fqdn, add each piece to the name
- # list to search, in order of longest to shortest.
- if fqdn
- list = fqdn.split(".")
- tmp = []
- list.each_with_index do |short, i|
- tmp << list[0..i].join(".")
- end
- names += tmp.reverse
- end
-
- # And make sure the key is first, since that's the most
- # likely usage.
- # The key is usually the Certificate CN, but it can be
- # set to the 'facter' hostname instead.
- if Puppet[:node_name] == 'cert'
- names.unshift key
- else
- names.unshift facts["hostname"]
- end
- names.uniq
- end
-
public
- attr_accessor :name, :classes, :parameters, :source, :ipaddress, :names
+ attr_accessor :name, :classes, :parameters, :source, :ipaddress
attr_reader :time
# Set the environment, making sure that it's valid.
@@ -165,4 +104,39 @@ class Puppet::Node
@parameters[name] = value unless @parameters.include?(name)
end
end
+
+ # Calculate the list of names we might use for looking
+ # up our node. This is only used for AST nodes.
+ def names
+ names = []
+
+ # First, get the fqdn
+ unless fqdn = parameters["fqdn"]
+ if domain = parameters["domain"]
+ fqdn = parameters["hostname"] + "." + parameters["domain"]
+ end
+ end
+
+ # Now that we (might) have the fqdn, add each piece to the name
+ # list to search, in order of longest to shortest.
+ if fqdn
+ list = fqdn.split(".")
+ tmp = []
+ list.each_with_index do |short, i|
+ tmp << list[0..i].join(".")
+ end
+ names += tmp.reverse
+ end
+
+ # And make sure the node name is first, since that's the most
+ # likely usage.
+ # The name is usually the Certificate CN, but it can be
+ # set to the 'facter' hostname instead.
+ if Puppet[:node_name] == 'cert'
+ names.unshift name
+ else
+ names.unshift parameters["hostname"]
+ end
+ names.uniq
+ end
end