1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Avoid duplicate system related fact calls. (#15716)

* Avoid duplicate system related fact calls.

Addresses #1461
This commit is contained in:
jctanner 2016-05-19 22:34:19 -04:00
parent b41b6b2ec5
commit 5bb4ee0c1e

View file

@ -170,10 +170,13 @@ class Facts(object):
{ 'path' : '/usr/local/sbin/pkg', 'name' : 'pkgng' }, { 'path' : '/usr/local/sbin/pkg', 'name' : 'pkgng' },
] ]
def __init__(self, module, load_on_init=True): def __init__(self, module, load_on_init=True, cached_facts=None):
self.module = module self.module = module
self.facts = {} if not cached_facts:
self.facts = {}
else:
self.facts = cached_facts
### TODO: Eventually, these should all get moved to populate(). But ### TODO: Eventually, these should all get moved to populate(). But
# some of the values are currently being used by other subclasses (for # some of the values are currently being used by other subclasses (for
# instance, os_family and distribution). Have to sort out what to do # instance, os_family and distribution). Have to sort out what to do
@ -3180,7 +3183,9 @@ def ansible_facts(module, gather_subset):
facts['gather_subset'] = list(gather_subset) facts['gather_subset'] = list(gather_subset)
facts.update(Facts(module).populate()) facts.update(Facts(module).populate())
for subset in gather_subset: for subset in gather_subset:
facts.update(FACT_SUBSETS[subset](module).populate()) facts.update(FACT_SUBSETS[subset](module,
load_on_init=False,
cached_facts=facts).populate())
return facts return facts
def get_all_facts(module): def get_all_facts(module):