diff options
author | Tim Smith <tsmith@chef.io> | 2016-04-25 15:22:16 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2016-04-25 15:22:16 -0700 |
commit | 780f7c5fbdebd9d65c4605f47bad9111d1176fcc (patch) | |
tree | c97032658f181db4dbb269b6b4117b0384909ef9 | |
parent | c53ddb98891b555c3b2296f3128f651d1c88cbc5 (diff) | |
parent | 68f1fea8aa8f4385389d64df1b309d88b8b41cba (diff) | |
download | ohai-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.rb | 2 | ||||
-rw-r--r-- | spec/unit/plugins/linux/virtualization_spec.rb | 19 |
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 |