summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/defaults.rb5
-rw-r--r--lib/puppet/node.rb4
-rwxr-xr-xspec/unit/node.rb9
3 files changed, 17 insertions, 1 deletions
diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb
index fcd4346fb..9ec26edf3 100644
--- a/lib/puppet/defaults.rb
+++ b/lib/puppet/defaults.rb
@@ -416,7 +416,10 @@ module Puppet
},
:rrdgraph => [false, "Whether RRD information should be graphed."],
:rrdinterval => ["$runinterval", "How often RRD should expect data.
- This should match how often the hosts report back to the server."]
+ This should match how often the hosts report back to the server."],
+ :strict_hostname_checking => [false, "Whether to only search for the complete
+ hostname as it is in the certificate when searching for node information
+ in the catalogs."]
)
self.setdefaults(:puppetd,
diff --git a/lib/puppet/node.rb b/lib/puppet/node.rb
index 5782c14fb..263aaf694 100644
--- a/lib/puppet/node.rb
+++ b/lib/puppet/node.rb
@@ -79,6 +79,10 @@ class Puppet::Node
# Calculate the list of names we might use for looking
# up our node. This is only used for AST nodes.
def names
+ if Puppet.settings[:strict_hostname_checking]
+ return [name]
+ end
+
names = []
# First, get the fqdn
diff --git a/spec/unit/node.rb b/spec/unit/node.rb
index 99c53e008..fb7d3639f 100755
--- a/spec/unit/node.rb
+++ b/spec/unit/node.rb
@@ -168,16 +168,25 @@ describe Puppet::Node, "when generating the list of names to search through" do
describe "and :node_name is set to 'cert'" do
before do
+ Puppet.settings.stubs(:value).with(:strict_hostname_checking).returns false
Puppet.settings.stubs(:value).with(:node_name).returns "cert"
end
it "should use the passed-in key as the first value" do
@node.names[0].should == "foo.domain.com"
end
+
+ describe "and strict hostname checking is enabled" do
+ it "should only use the passed-in key" do
+ Puppet.settings.expects(:value).with(:strict_hostname_checking).returns true
+ @node.names.should == ["foo.domain.com"]
+ end
+ end
end
describe "and :node_name is set to 'facter'" do
before do
+ Puppet.settings.stubs(:value).with(:strict_hostname_checking).returns false
Puppet.settings.stubs(:value).with(:node_name).returns "facter"
end