Sha256: f9ea72ca7f30a55b37d99b97d2b658478a9ee5cbb1a71ef44fd789f7f9724c88
Contents?: true
Size: 1.45 KB
Versions: 18
Compression:
Stored size: 1.45 KB
Contents
module Specinfra class HostInventory class Virtualization < Base def get res = {} ## docker if backend.run_command('grep -Eqa \'docker(/|-[0-9a-f]+)\' /proc/1/cgroup||test -e /.dockerinit').success? res[:system] = 'docker' return res end ## OpenVZ on Linux if backend.run_command('test -d /proc/vz -a ! -d /proc/bc').success? res[:system] = 'openvz' return res end cmd = backend.command.get(:get_inventory_system_product_name) ret = backend.run_command(cmd) if ret.exit_status == 0 res[:system] = parse_system_product_name(ret.stdout) return res end ret = backend.run_command('systemd-detect-virt') if ret.success? res[:system] = parse_systemd_detect_virt_output(ret.stdout) end res end def parse_system_product_name(ret) product_name = case ret when /.*VMware Virtual Platform/ 'vmware' when /.*VirtualBox/ 'vbox' when /.*KVM/ 'kvm' when /.*OpenStack/ 'openstack' else nil end product_name end def parse_systemd_detect_virt_output(ret) detected = ret.strip case detected when 'vmware', 'kvm' detected when 'oracle' 'vbox' end end end end end
Version data entries
18 entries across 18 versions & 1 rubygems