summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2014-03-05 14:38:52 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2014-03-05 14:38:52 -0800
commit442a81c4a52352e93c6621bf3dffbfe5a9a17bd2 (patch)
treea369848a0ab799097bfd28d203e4233b8d3b3a26
parent68ab92f7fea8fd0c13328b79993b354cd60b28bc (diff)
downloadchef-442a81c4a52352e93c6621bf3dffbfe5a9a17bd2.tar.gz
add specs for setting nodename based on machinename
-rw-r--r--spec/unit/client_spec.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/unit/client_spec.rb b/spec/unit/client_spec.rb
index e4143d7653..9688cce2f4 100644
--- a/spec/unit/client_spec.rb
+++ b/spec/unit/client_spec.rb
@@ -27,11 +27,13 @@ require 'rbconfig'
describe Chef::Client do
let(:hostname) { "hostname" }
+ let(:machinename) { "machinename.example.org" }
let(:fqdn) { "hostname.example.org" }
let(:ohai_data) do
{ :fqdn => fqdn,
:hostname => hostname,
+ :machinename => machinename,
:platform => 'example-platform',
:platform_version => 'example-platform-1.0',
:data => {}
@@ -560,5 +562,40 @@ describe Chef::Client do
end
end
+ describe "setting node name" do
+ context "when machinename, hostname and fqdn are all set" do
+ it "favors the fqdn" do
+ expect(client.node_name).to eql(fqdn)
+ end
+ end
+
+ context "when fqdn is missing" do
+ # ohai 7 should always have machinename == return of hostname
+ let(:fqdn) { nil }
+ it "favors the machinename" do
+ expect(client.node_name).to eql(machinename)
+ end
+ end
+
+ context "when fqdn and machinename are missing" do
+ # ohai 6 will not have machinename, return the short hostname
+ let(:fqdn) { nil }
+ let(:machinename) { nil }
+ it "falls back to hostname" do
+ expect(client.node_name).to eql(hostname)
+ end
+ end
+
+ context "when they're all missing" do
+ let(:machinename) { nil }
+ let(:hostname) { nil }
+ let(:fqdn) { nil }
+
+ it "throws an exception" do
+ expect { client.node_name }.to raise_error(Chef::Exceptions::CannotDetermineNodeName)
+ end
+ end
+
+ end
end