facts - properly report virtualization facts for Linux guests on bhyve (#73204)
This commit is contained in:
parent
0e6c334115
commit
df451636e7
4 changed files with 37 additions and 0 deletions
2
changelogs/fragments/73167-bhyve-facts.yml
Normal file
2
changelogs/fragments/73167-bhyve-facts.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- facts - properly report virtualization facts for Linux guests running on bhyve (https://github.com/ansible/ansible/issues/73167)
|
|
@ -352,6 +352,13 @@ class LinuxVirtual(Virtual):
|
||||||
virtual_facts['virtualization_role'] = 'guest'
|
virtual_facts['virtualization_role'] = 'guest'
|
||||||
found_virt = True
|
found_virt = True
|
||||||
|
|
||||||
|
if 'BHYVE' in out:
|
||||||
|
guest_tech.add('bhyve')
|
||||||
|
if not found_virt:
|
||||||
|
virtual_facts['virtualization_type'] = 'bhyve'
|
||||||
|
virtual_facts['virtualization_role'] = 'guest'
|
||||||
|
found_virt = True
|
||||||
|
|
||||||
if os.path.exists('/dev/kvm'):
|
if os.path.exists('/dev/kvm'):
|
||||||
host_tech.add('kvm')
|
host_tech.add('kvm')
|
||||||
if not found_virt:
|
if not found_virt:
|
||||||
|
|
0
test/units/module_utils/facts/virtual/__init__.py
Normal file
0
test/units/module_utils/facts/virtual/__init__.py
Normal file
28
test/units/module_utils/facts/virtual/test_linux.py
Normal file
28
test/units/module_utils/facts/virtual/test_linux.py
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright (c) 2020 Ansible Project
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
from __future__ import absolute_import, division, print_function
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
|
from ansible.module_utils.facts.virtual import linux
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_virtual_facts_bhyve(mocker):
|
||||||
|
mocker.patch('os.path.exists', return_value=False)
|
||||||
|
mocker.patch('ansible.module_utils.facts.virtual.linux.get_file_content', return_value='')
|
||||||
|
mocker.patch('ansible.module_utils.facts.virtual.linux.get_file_lines', return_value=[])
|
||||||
|
|
||||||
|
module = mocker.Mock()
|
||||||
|
module.run_command.return_value = (0, 'BHYVE\n', '')
|
||||||
|
inst = linux.LinuxVirtual(module)
|
||||||
|
|
||||||
|
facts = inst.get_virtual_facts()
|
||||||
|
expected = {
|
||||||
|
'virtualization_role': 'guest',
|
||||||
|
'virtualization_tech_host': set(),
|
||||||
|
'virtualization_type': 'bhyve',
|
||||||
|
'virtualization_tech_guest': set(['bhyve']),
|
||||||
|
}
|
||||||
|
|
||||||
|
assert facts == expected
|
Loading…
Reference in a new issue