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'
|
||||
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'):
|
||||
host_tech.add('kvm')
|
||||
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