diff options
author | Thom May <thom@may.lt> | 2016-01-19 18:47:11 +0000 |
---|---|---|
committer | Thom May <thom@may.lt> | 2016-01-19 18:47:11 +0000 |
commit | 4bf8cc50ab473d1258c6934c959b6ca62f792cf6 (patch) | |
tree | 3b8a7470525f0bef5d1b4a9f0bf0f1b55dc08b1a | |
parent | 2faaaf6ae1c7dd735137f34833f46838d9bb6169 (diff) | |
parent | df619db8d05dff1d8dfdb739717164ff71dead93 (diff) | |
download | ohai-4bf8cc50ab473d1258c6934c959b6ca62f792cf6.tar.gz |
Merge pull request #702 from jujugrrr/rackspace_instance_id
Add instance_id to rackspace plugin
-rw-r--r-- | lib/ohai/plugins/rackspace.rb | 13 | ||||
-rw-r--r-- | spec/unit/plugins/rackspace_spec.rb | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/ohai/plugins/rackspace.rb b/lib/ohai/plugins/rackspace.rb index 8736b370..195fed06 100644 --- a/lib/ohai/plugins/rackspace.rb +++ b/lib/ohai/plugins/rackspace.rb @@ -96,6 +96,18 @@ Ohai.plugin(:Rackspace) do nil end + # Get the rackspace instance_id + # + def get_instance_id() + so = shell_out("xenstore-read name") + if so.exitstatus == 0 + rackspace[:instance_id] = so.stdout.gsub(/instance-/, "") + end + rescue Errno::ENOENT + Ohai::Log.debug("Unable to find xenstore-read, cannot capture instance ID information for Rackspace cloud") + nil + end + # Get the rackspace private networks # def get_private_networks() @@ -127,6 +139,7 @@ Ohai.plugin(:Rackspace) do get_ip_address(:public_ip, :eth0) get_ip_address(:private_ip, :eth1) get_region() + get_instance_id() # public_ip + private_ip are deprecated in favor of public_ipv4 and local_ipv4 to standardize. rackspace[:public_ipv4] = rackspace[:public_ip] get_global_ipv6_address(:public_ipv6, :eth0) diff --git a/spec/unit/plugins/rackspace_spec.rb b/spec/unit/plugins/rackspace_spec.rb index 2f9e32da..e1c6f13a 100644 --- a/spec/unit/plugins/rackspace_spec.rb +++ b/spec/unit/plugins/rackspace_spec.rb @@ -135,6 +135,13 @@ OUT @plugin.run expect(@plugin[:rackspace][:region]).to eq("dfw") end + + it "should capture instance ID information" do + provider_data = "instance-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + allow(@plugin).to receive(:shell_out).with("xenstore-read name").and_return(mock_shell_out(0, provider_data, "")) + @plugin.run + expect(@plugin[:rackspace][:instance_id]).to eq("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") + end end describe "with rackspace cloud file" do |