summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom May <thom@may.lt>2016-01-19 18:47:11 +0000
committerThom May <thom@may.lt>2016-01-19 18:47:11 +0000
commit4bf8cc50ab473d1258c6934c959b6ca62f792cf6 (patch)
tree3b8a7470525f0bef5d1b4a9f0bf0f1b55dc08b1a
parent2faaaf6ae1c7dd735137f34833f46838d9bb6169 (diff)
parentdf619db8d05dff1d8dfdb739717164ff71dead93 (diff)
downloadohai-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.rb13
-rw-r--r--spec/unit/plugins/rackspace_spec.rb7
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