diff options
author | Tim Smith <tsmith@chef.io> | 2018-12-05 10:58:22 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-05 10:58:22 -0800 |
commit | 28b349c85027845391d407f364a7d5c96a54a016 (patch) | |
tree | 64bf81659ba0e786e8c8955477c17161513e9565 /lib/ohai/mixin/dmi_decode.rb | |
parent | 67f9f6298083ee29d649dc6d3b7b19ab9f834ec8 (diff) | |
parent | ed6f838ba38a5dd86b50325697312a475b103a27 (diff) | |
download | ohai-28b349c85027845391d407f364a7d5c96a54a016.tar.gz |
Merge pull request #1317 from chef/virt
Unify virtualization detection on a single helper
Diffstat (limited to 'lib/ohai/mixin/dmi_decode.rb')
-rw-r--r-- | lib/ohai/mixin/dmi_decode.rb | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/lib/ohai/mixin/dmi_decode.rb b/lib/ohai/mixin/dmi_decode.rb index 018b8813..4ef4ef6c 100644 --- a/lib/ohai/mixin/dmi_decode.rb +++ b/lib/ohai/mixin/dmi_decode.rb @@ -1,6 +1,6 @@ # # Author:: Tim Smith <tsmith@chef.io> -# Copyright:: Copyright (c) 2015-2016 Chef Software, Inc. +# Copyright:: Copyright (c) 2015-2018 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,29 +17,34 @@ # http://www.dmo.ca/blog/detecting-virtualization-on-linux module ::Ohai::Mixin::DmiDecode - def guest_from_dmi(dmi_data) - dmi_data.each_line do |line| - case line - when /Manufacturer: Microsoft/ - return "hyperv" if dmi_data =~ /Version: (7.0|Hyper-V)/ - when /Manufacturer: VMware/ - return "vmware" - when /Manufacturer: Xen/ - return "xen" - when /Product.*: VirtualBox/ - return "vbox" - when /Product.*: OpenStack/ - return "openstack" - when /Manufacturer: QEMU|Product Name: (KVM|RHEV)/ - return "kvm" - when /Product.*: BHYVE/ - return "bhyve" - when /Manufacturer: Veertu/ - return "veertu" - when /Manufacturer: Amazon EC2/ - return "amazonec2" - end + def guest_from_dmi_data(manufacturer, product, version) + case manufacturer + when /Xen/ + return "xen" + when /VMware/ + return "vmware" + when /Microsoft/ + return "hyperv" if product =~ /Virtual Machine/ + when /Amazon EC2/ + return "amazonec2" + when /QEMU/ + return "kvm" + when /Veertu/ + return "veertu" + when /Parallels/ + return "parallels" end - nil + + case product + when /VirtualBox/ + return "vbox" + when /OpenStack/ + return "openstack" + when /(KVM|RHEV)/ + return "kvm" + when /BHYVE/ + return "bhyve" + end + nil # doesn't look like a virt end end |