summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2016-04-25 15:22:16 -0700
committerTim Smith <tsmith@chef.io>2016-04-25 15:22:16 -0700
commit780f7c5fbdebd9d65c4605f47bad9111d1176fcc (patch)
treec97032658f181db4dbb269b6b4117b0384909ef9
parentc53ddb98891b555c3b2296f3128f651d1c88cbc5 (diff)
parent68f1fea8aa8f4385389d64df1b309d88b8b41cba (diff)
downloadohai-780f7c5fbdebd9d65c4605f47bad9111d1176fcc.tar.gz
Merge pull request #812 from chef/bhyve
Add detection of bhyve guests running Linux/*BSD
-rw-r--r--lib/ohai/mixin/dmi_decode.rb2
-rw-r--r--spec/unit/plugins/linux/virtualization_spec.rb19
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/ohai/mixin/dmi_decode.rb b/lib/ohai/mixin/dmi_decode.rb
index 8ec109f5..c56291c7 100644
--- a/lib/ohai/mixin/dmi_decode.rb
+++ b/lib/ohai/mixin/dmi_decode.rb
@@ -40,6 +40,8 @@ module ::Ohai::Mixin::DmiDecode
return "openstack"
when /Manufacturer: QEMU|Product Name: (KVM|RHEV)/
return "kvm"
+ when /Product.*: BHYVE/
+ return "bhyve"
end
end
return nil
diff --git a/spec/unit/plugins/linux/virtualization_spec.rb b/spec/unit/plugins/linux/virtualization_spec.rb
index cb148acd..e9e6b15f 100644
--- a/spec/unit/plugins/linux/virtualization_spec.rb
+++ b/spec/unit/plugins/linux/virtualization_spec.rb
@@ -324,6 +324,25 @@ RHEV
expect(plugin[:virtualization][:systems][:kvm]).to eq("guest")
end
+ it "sets bhyve guest if dmidecode detects bhyve" do
+ bhyve_dmidecode = <<-OUTPUT
+System Information
+ Manufacturer:
+ Product Name: BHYVE
+ Version: 1.0
+ Serial Number: None
+ UUID: 023B323A-E139-4B36-8BC5-CEBB2469DAAA
+ Wake-up Type: Power Switch
+ SKU Number: None
+ Family:
+OUTPUT
+ allow(plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, bhyve_dmidecode, ""))
+ plugin.run
+ expect(plugin[:virtualization][:system]).to eq("bhyve")
+ expect(plugin[:virtualization][:role]).to eq("guest")
+ expect(plugin[:virtualization][:systems][:bhyve]).to eq("guest")
+ end
+
it "should run dmidecode and not set virtualization if nothing is detected" do
allow(plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, "", ""))
plugin.run