summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom May <thom@chef.io>2018-05-24 11:56:02 +0100
committerThom May <thom@chef.io>2018-05-30 10:07:00 +0100
commitee03c32a6babe2d2fa4e8ae32d1c917f10569166 (patch)
tree45c243a08e8e56507eb8a0c817324514da77ef1a
parentb1368e53533147d8c494ad631247a81ac64b353e (diff)
downloadohai-tm/rhat_ostack.tar.gz
detect red hat openstack clusterstm/rhat_ostack
Signed-off-by: Thom May <thom@chef.io>
-rw-r--r--lib/ohai/plugins/openstack.rb3
-rw-r--r--spec/unit/plugins/openstack_spec.rb29
2 files changed, 27 insertions, 5 deletions
diff --git a/lib/ohai/plugins/openstack.rb b/lib/ohai/plugins/openstack.rb
index 2c5290a2..6d34d1a4 100644
--- a/lib/ohai/plugins/openstack.rb
+++ b/lib/ohai/plugins/openstack.rb
@@ -32,6 +32,9 @@ Ohai.plugin(:Openstack) do
if get_attribute(:dmi, :system, :all_records, 0, :Manufacturer) =~ /OpenStack/
logger.trace("Plugin Openstack: has_openstack_dmi? == true")
true
+ elsif get_attribute(:dmi, :system, :product_name) == "OpenStack Compute"
+ logger.trace("Plugin Openstack: has_openstack_dmi? == true")
+ true
else
logger.trace("Plugin Openstack: has_openstack_dmi? == false")
false
diff --git a/spec/unit/plugins/openstack_spec.rb b/spec/unit/plugins/openstack_spec.rb
index 843f864c..b8533a22 100644
--- a/spec/unit/plugins/openstack_spec.rb
+++ b/spec/unit/plugins/openstack_spec.rb
@@ -40,16 +40,35 @@ describe Ohai::System, "plugin openstack" do
allow(plugin).to receive(:can_socket_connect?).
with(Ohai::Mixin::Ec2Metadata::EC2_METADATA_ADDR, 80).
and_return(false)
- plugin[:dmi] = { :system => { :all_records => [ { :Manufacturer => "OpenStack Foundation" } ] } }
+ plugin[:dmi] = dmi_data
plugin.run
end
- it "sets openstack attribute" do
- expect(plugin[:openstack][:provider]).to eq("openstack")
+ context "with normal openstack metadata" do
+ let(:dmi_data) do
+ { :system => { :all_records => [ { :Manufacturer => "OpenStack Foundation" } ] } }
+ end
+
+ it "sets openstack attribute" do
+ expect(plugin[:openstack][:provider]).to eq("openstack")
+ end
+
+ it "doesn't set metadata attributes" do
+ expect(plugin[:openstack][:instance_id]).to be_nil
+ end
end
+ context "with Red Hat openstack metadata" do
+ let(:dmi_data) do
+ { :system => { :manufacturer => "Red Hat", :product_name => "OpenStack Compute" } }
+ end
- it "doesn't set metadata attributes" do
- expect(plugin[:openstack][:instance_id]).to be_nil
+ it "sets openstack attribute" do
+ expect(plugin[:openstack][:provider]).to eq("openstack")
+ end
+
+ it "doesn't set metadata attributes" do
+ expect(plugin[:openstack][:instance_id]).to be_nil
+ end
end
end
end