summaryrefslogtreecommitdiff
path: root/lib/ansible/module_utils/network/common/facts/facts.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/module_utils/network/common/facts/facts.py')
-rw-r--r--lib/ansible/module_utils/network/common/facts/facts.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/lib/ansible/module_utils/network/common/facts/facts.py b/lib/ansible/module_utils/network/common/facts/facts.py
deleted file mode 100644
index 1ebf31d7bd..0000000000
--- a/lib/ansible/module_utils/network/common/facts/facts.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#
-# -*- coding: utf-8 -*-
-# Copyright 2019 Red Hat
-# GNU General Public License v3.0+
-# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-"""
-The facts base class
-this contains methods common to all facts subsets
-"""
-from ansible.module_utils.network.common.network import get_resource_connection
-from ansible.module_utils.six import iteritems
-
-
-class FactsBase(object):
- """
- The facts base class
- """
- def __init__(self, module):
- self._module = module
- self._warnings = []
- self._gather_subset = module.params.get('gather_subset')
- self._gather_network_resources = module.params.get('gather_network_resources')
- self._connection = None
- if module.params.get('state') not in ['rendered', 'parsed']:
- self._connection = get_resource_connection(module)
-
- self.ansible_facts = {'ansible_network_resources': {}}
- self.ansible_facts['ansible_net_gather_network_resources'] = list()
- self.ansible_facts['ansible_net_gather_subset'] = list()
-
- if not self._gather_subset:
- self._gather_subset = ['!config']
- if not self._gather_network_resources:
- self._gather_network_resources = ['!all']
-
- def gen_runable(self, subsets, valid_subsets, resource_facts=False):
- """ Generate the runable subset
-
- :param module: The module instance
- :param subsets: The provided subsets
- :param valid_subsets: The valid subsets
- :param resource_facts: A boolean flag
- :rtype: list
- :returns: The runable subsets
- """
- runable_subsets = set()
- exclude_subsets = set()
- minimal_gather_subset = set()
- if not resource_facts:
- minimal_gather_subset = frozenset(['default'])
-
- for subset in subsets:
- if subset == 'all':
- runable_subsets.update(valid_subsets)
- continue
- if subset == 'min' and minimal_gather_subset:
- runable_subsets.update(minimal_gather_subset)
- continue
- if subset.startswith('!'):
- subset = subset[1:]
- if subset == 'min':
- exclude_subsets.update(minimal_gather_subset)
- continue
- if subset == 'all':
- exclude_subsets.update(
- valid_subsets - minimal_gather_subset)
- continue
- exclude = True
- else:
- exclude = False
-
- if subset not in valid_subsets:
- self._module.fail_json(msg='Subset must be one of [%s], got %s' %
- (', '.join(sorted([item for item in valid_subsets])), subset))
-
- if exclude:
- exclude_subsets.add(subset)
- else:
- runable_subsets.add(subset)
-
- if not runable_subsets:
- runable_subsets.update(valid_subsets)
- runable_subsets.difference_update(exclude_subsets)
- return runable_subsets
-
- def get_network_resources_facts(self, facts_resource_obj_map, resource_facts_type=None, data=None):
- """
- :param fact_resource_subsets:
- :param data: previously collected configuration
- :return:
- """
- if not resource_facts_type:
- resource_facts_type = self._gather_network_resources
-
- restorun_subsets = self.gen_runable(resource_facts_type, frozenset(facts_resource_obj_map.keys()), resource_facts=True)
- if restorun_subsets:
- self.ansible_facts['ansible_net_gather_network_resources'] = list(restorun_subsets)
- instances = list()
- for key in restorun_subsets:
- fact_cls_obj = facts_resource_obj_map.get(key)
- if fact_cls_obj:
- instances.append(fact_cls_obj(self._module))
- else:
- self._warnings.extend(["network resource fact gathering for '%s' is not supported" % key])
-
- for inst in instances:
- inst.populate_facts(self._connection, self.ansible_facts, data)
-
- def get_network_legacy_facts(self, fact_legacy_obj_map, legacy_facts_type=None):
- if not legacy_facts_type:
- legacy_facts_type = self._gather_subset
-
- runable_subsets = self.gen_runable(legacy_facts_type, frozenset(fact_legacy_obj_map.keys()))
- if runable_subsets:
- facts = dict()
- # default subset should always returned be with legacy facts subsets
- if 'default' not in runable_subsets:
- runable_subsets.add('default')
- self.ansible_facts['ansible_net_gather_subset'] = list(runable_subsets)
-
- instances = list()
- for key in runable_subsets:
- instances.append(fact_legacy_obj_map[key](self._module))
-
- for inst in instances:
- inst.populate()
- facts.update(inst.facts)
- self._warnings.extend(inst.warnings)
-
- for key, value in iteritems(facts):
- key = 'ansible_net_%s' % key
- self.ansible_facts[key] = value