module Ohai::Mixin::DmiDecode

www.dmo.ca/blog/detecting-virtualization-on-linux

Public Instance Methods

guest_from_dmi(dmi_data) click to toggle source
# File lib/ohai/mixin/dmi_decode.rb, line 20
def guest_from_dmi(dmi_data)
  dmi_data.each_line do |line|
    case line
    when /Manufacturer: Microsoft/
      if dmi_data =~ /Product.*: Virtual Machine/
        if dmi_data =~ /Version: (7.0|Hyper-V)/
          return "hyperv"
        elsif dmi_data =~ /Version: (VS2005R2|6.0)/
          return "virtualpc"
        elsif dmi_data =~ /Version: 5.0/
          return "virtualserver"
        end
      end
    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"
    end
  end
  nil
end