Class: Specinfra::HostInventory::Virtualization
- Inherits:
-
Base
- Object
- Base
- Specinfra::HostInventory::Virtualization
show all
- Defined in:
- lib/specinfra/host_inventory/virtualization.rb
Instance Method Summary
collapse
Methods inherited from Base
#backend, #initialize
Instance Method Details
#get ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/specinfra/host_inventory/virtualization.rb', line 4
def get
res = {}
if backend.run_command('grep -Eqa \'docker(/|-[0-9a-f]+)\' /proc/1/cgroup||test -e /.dockerinit').success?
res[:system] = 'docker'
return res
end
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 and ret.stdout.length > 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
|
#parse_system_product_name(ret) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/specinfra/host_inventory/virtualization.rb', line 33
def parse_system_product_name(ret)
product_name = case ret
when /.*(VMware Virtual Platform|VMware7,1)/
'vmware'
when /.*VirtualBox/
'vbox'
when /.*KVM/
'kvm'
when /.*OpenStack/
'openstack'
else
nil
end
product_name
end
|
#parse_systemd_detect_virt_output(ret) ⇒ Object
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/specinfra/host_inventory/virtualization.rb', line 49
def parse_systemd_detect_virt_output(ret)
detected = ret.strip
case detected
when 'vmware', 'kvm', 'qemu'
detected
when 'oracle'
'vbox'
end
end
|