mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 04:40:22 -07:00
Fix pkg_mgr fact on OpenBSD (#30725)
* Fix pkg_mgr fact on OpenBSD Add a OpenBSDPkgMgrFactCollector that hardcodes pkg_mgr to 'openbsd_pkg'. The ansible collector will choose the OpenBSD collector if the system is OpenBSD and the 'Generic' one otherwise. This removes PkgMgrFactCollectors depenency on the 'system' fact being in collected_facts, which also avoids ordering issues (if the pkg mgr fact is collected before the system fact...) Fixes #30623
This commit is contained in:
parent
d122a693d1
commit
12404f470a
4 changed files with 73 additions and 9 deletions
|
@ -32,7 +32,7 @@ from ansible.module_utils.facts.system.distribution import DistributionFactColle
|
|||
from ansible.module_utils.facts.system.dns import DnsFactCollector
|
||||
from ansible.module_utils.facts.system.env import EnvFactCollector
|
||||
from ansible.module_utils.facts.system.fips import FipsFactCollector
|
||||
from ansible.module_utils.facts.system.pkg_mgr import PkgMgrFactCollector
|
||||
from ansible.module_utils.facts.system.pkg_mgr import PkgMgrFactCollector, OpenBSDPkgMgrFactCollector
|
||||
from ansible.module_utils.facts.system.platform import PlatformFactCollector
|
||||
from ansible.module_utils.facts.system.python import PythonFactCollector
|
||||
from ansible.module_utils.facts.system.selinux import SelinuxFactCollector
|
||||
|
@ -225,6 +225,29 @@ class TestPkgMgrFacts(BaseFactsTest):
|
|||
fact_namespace = 'ansible_pkgmgr'
|
||||
collector_class = PkgMgrFactCollector
|
||||
|
||||
def test_collect(self):
|
||||
module = self._mock_module()
|
||||
fact_collector = self.collector_class()
|
||||
facts_dict = fact_collector.collect(module=module, collected_facts=self.collected_facts)
|
||||
self.assertIsInstance(facts_dict, dict)
|
||||
self.assertIn('pkg_mgr', facts_dict)
|
||||
|
||||
|
||||
class TestOpenBSDPkgMgrFacts(BaseFactsTest):
|
||||
__test__ = True
|
||||
gather_subset = ['!all', 'pkg_mgr']
|
||||
valid_subsets = ['pkg_mgr']
|
||||
fact_namespace = 'ansible_pkgmgr'
|
||||
collector_class = OpenBSDPkgMgrFactCollector
|
||||
|
||||
def test_collect(self):
|
||||
module = self._mock_module()
|
||||
fact_collector = self.collector_class()
|
||||
facts_dict = fact_collector.collect(module=module, collected_facts=self.collected_facts)
|
||||
self.assertIsInstance(facts_dict, dict)
|
||||
self.assertIn('pkg_mgr', facts_dict)
|
||||
self.assertEqual(facts_dict['pkg_mgr'], 'openbsd_pkg')
|
||||
|
||||
|
||||
class TestPlatformFactCollector(BaseFactsTest):
|
||||
__test__ = True
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue