|
|
|
@ -3173,47 +3173,38 @@ class OpenBSDVirtual(Virtual):
|
|
|
|
|
def get_virtual_facts(self):
|
|
|
|
|
sysctl_path = self.module.get_bin_path('sysctl')
|
|
|
|
|
|
|
|
|
|
# Set empty values as default
|
|
|
|
|
self.facts['virtualization_type'] = ''
|
|
|
|
|
self.facts['virtualization_role'] = ''
|
|
|
|
|
|
|
|
|
|
if sysctl_path:
|
|
|
|
|
rc, out, err = self.module.run_command("%s -n hw.product" % sysctl_path)
|
|
|
|
|
if rc != 0:
|
|
|
|
|
self.facts['virtualization_type'] = ''
|
|
|
|
|
self.facts['virtualization_role'] = ''
|
|
|
|
|
elif re.match('(KVM|Bochs|SmartDC).*', out):
|
|
|
|
|
self.facts['virtualization_type'] = 'kvm'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif re.match('.*VMware.*', out):
|
|
|
|
|
self.facts['virtualization_type'] = 'VMware'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'VirtualBox':
|
|
|
|
|
self.facts['virtualization_type'] = 'virtualbox'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'HVM domU':
|
|
|
|
|
self.facts['virtualization_type'] = 'xen'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'Parallels':
|
|
|
|
|
self.facts['virtualization_type'] = 'parallels'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'RHEV Hypervisor':
|
|
|
|
|
self.facts['virtualization_type'] = 'RHEV'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
else:
|
|
|
|
|
# Try harder and see if hw.vendor has anything we could use.
|
|
|
|
|
rc, out, err = self.module.run_command("%s -n hw.vendor" % sysctl_path)
|
|
|
|
|
if rc != 0:
|
|
|
|
|
self.facts['virtualization_type'] = ''
|
|
|
|
|
self.facts['virtualization_role'] = ''
|
|
|
|
|
elif out.rstrip() == 'QEMU':
|
|
|
|
|
if rc == 0:
|
|
|
|
|
if re.match('(KVM|Bochs|SmartDC).*', out):
|
|
|
|
|
self.facts['virtualization_type'] = 'kvm'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif re.match('.*VMware.*', out):
|
|
|
|
|
self.facts['virtualization_type'] = 'VMware'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'VirtualBox':
|
|
|
|
|
self.facts['virtualization_type'] = 'virtualbox'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'HVM domU':
|
|
|
|
|
self.facts['virtualization_type'] = 'xen'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'Parallels':
|
|
|
|
|
self.facts['virtualization_type'] = 'parallels'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
elif out.rstrip() == 'RHEV Hypervisor':
|
|
|
|
|
self.facts['virtualization_type'] = 'RHEV'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
else:
|
|
|
|
|
# Set empty values if we find no match at all.
|
|
|
|
|
self.facts['virtualization_type'] = ''
|
|
|
|
|
self.facts['virtualization_role'] = ''
|
|
|
|
|
else:
|
|
|
|
|
# Set empty values if we find no sysctl binary.
|
|
|
|
|
self.facts['virtualization_type'] = ''
|
|
|
|
|
self.facts['virtualization_role'] = ''
|
|
|
|
|
|
|
|
|
|
# Try harder and see if hw.vendor has anything we could use.
|
|
|
|
|
rc, out, err = self.module.run_command("%s -n hw.vendor" % sysctl_path)
|
|
|
|
|
if rc == 0:
|
|
|
|
|
if out.rstrip() == 'QEMU':
|
|
|
|
|
self.facts['virtualization_type'] = 'kvm'
|
|
|
|
|
self.facts['virtualization_role'] = 'guest'
|
|
|
|
|
|
|
|
|
|
class HPUXVirtual(Virtual):
|
|
|
|
|
"""
|
|
|
|
|