diff options
Diffstat (limited to 'lib/ansible/module_utils/network/eos/facts/lacp_interfaces/lacp_interfaces.py')
-rw-r--r-- | lib/ansible/module_utils/network/eos/facts/lacp_interfaces/lacp_interfaces.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/lib/ansible/module_utils/network/eos/facts/lacp_interfaces/lacp_interfaces.py b/lib/ansible/module_utils/network/eos/facts/lacp_interfaces/lacp_interfaces.py deleted file mode 100644 index 6f0560fe3b..0000000000 --- a/lib/ansible/module_utils/network/eos/facts/lacp_interfaces/lacp_interfaces.py +++ /dev/null @@ -1,90 +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 eos lacp_interfaces fact class -It is in this file the configuration is collected from the device -for a given resource, parsed, and the facts tree is populated -based on the configuration. -""" - -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -import re -from copy import deepcopy - -from ansible.module_utils.network.common import utils -from ansible.module_utils.network.eos.argspec.lacp_interfaces.lacp_interfaces import Lacp_interfacesArgs - - -class Lacp_interfacesFacts(object): - """ The eos lacp_interfaces fact class - """ - - def __init__(self, module, subspec='config', options='options'): - self._module = module - self.argument_spec = Lacp_interfacesArgs.argument_spec - spec = deepcopy(self.argument_spec) - if subspec: - if options: - facts_argument_spec = spec[subspec][options] - else: - facts_argument_spec = spec[subspec] - else: - facts_argument_spec = spec - - self.generated_spec = utils.generate_dict(facts_argument_spec) - - def get_device_data(self, connection): - return connection.get('show running-config | section lacp') - - def populate_facts(self, connection, ansible_facts, data=None): - """ Populate the facts for lacp_interfaces - :param connection: the device connection - :param ansible_facts: Facts dictionary - :param data: previously collected configuration - :rtype: dictionary - :returns: facts - """ - if not data: - data = self.get_device_data(connection) - - # split the config into instances of the resource - resource_delim = 'interface' - find_pattern = r'(?:^|\n)%s.*?(?=(?:^|\n)%s|$)' % (resource_delim, resource_delim) - resources = [p.strip() for p in re.findall(find_pattern, data, re.DOTALL)] - - objs = [] - for resource in resources: - if resource: - obj = self.render_config(self.generated_spec, resource) - if obj: - objs.append(obj) - - ansible_facts['ansible_network_resources'].pop('lacp_interfaces', None) - facts = {} - if objs: - params = utils.validate_config(self.argument_spec, {'config': objs}) - facts['lacp_interfaces'] = [utils.remove_empties(cfg) for cfg in params['config']] - - ansible_facts['ansible_network_resources'].update(facts) - return ansible_facts - - def render_config(self, spec, conf): - """ - Render config as dictionary structure and delete keys - from spec for null values - - :param spec: The facts tree, generated from the argspec - :param conf: The configuration - :rtype: dictionary - :returns: The generated config - """ - config = deepcopy(spec) - config['name'] = utils.parse_conf_arg(conf, 'interface') - config['port_priority'] = utils.parse_conf_arg(conf, 'port-priority') - config['rate'] = utils.parse_conf_arg(conf, 'rate') - - return utils.remove_empties(config) |