diff --git a/README.md b/README.md index 58187e9ec..4c3094111 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ Name | Description [cisco.ios.ios_user](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_user_module.rst)|Module to manage the aggregates of local users. [cisco.ios.ios_vlans](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_vlans_module.rst)|Resource module to configure VLANs. [cisco.ios.ios_vrf](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_vrf_module.rst)|Module to configure VRF definitions. +[cisco.ios.ios_vrf_address_family](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_vrf_address_family_module.rst)|Resource module to configure VRF definitions. [cisco.ios.ios_vrf_global](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_vrf_global_module.rst)|Resource module to configure global VRF definitions. [cisco.ios.ios_vrf_interfaces](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_vrf_interfaces_module.rst)|Manages VRF configuration on interfaces. [cisco.ios.ios_vxlan_vtep](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_vxlan_vtep_module.rst)|Resource module to configure VXLAN VTEP interface. diff --git a/changelogs/fragments/add_vrf_address_family.yaml b/changelogs/fragments/add_vrf_address_family.yaml index b001b048a..ccab55287 100644 --- a/changelogs/fragments/add_vrf_address_family.yaml +++ b/changelogs/fragments/add_vrf_address_family.yaml @@ -1,3 +1,3 @@ --- minor_changes: - - Adds a new module `ios_vrf_address_family` to manage VRFs address families on Cisco IOS devices. \ No newline at end of file + - Adds a new module `ios_vrf_address_family` to manage VRFs address families on Cisco IOS devices. diff --git a/plugins/module_utils/network/ios/argspec/vrf_address_family/vrf_address_family.py b/plugins/module_utils/network/ios/argspec/vrf_address_family/vrf_address_family.py index 027b36c6d..aed0b63e9 100644 --- a/plugins/module_utils/network/ios/argspec/vrf_address_family/vrf_address_family.py +++ b/plugins/module_utils/network/ios/argspec/vrf_address_family/vrf_address_family.py @@ -5,6 +5,7 @@ from __future__ import absolute_import, division, print_function + __metaclass__ = type ############################################# @@ -29,8 +30,7 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 - """The arg spec for the ios_vrf_address_family module - """ + """The arg spec for the ios_vrf_address_family module""" argument_spec = { "config": { @@ -53,7 +53,7 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "next_hop": { "type": "dict", "options": {"loopback": {"type": "int"}}, - } + }, }, }, "export": { @@ -131,12 +131,12 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "mdt_hello_enable": { - "type": "bool" - } + "type": "bool", + }, }, }, "mdt_hello_enable": { - "type": "bool" + "type": "bool", }, }, }, @@ -147,27 +147,27 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "mdt_hello_enable": { - "type": "bool" + "type": "bool", }, "pim_tlv_announce": { "type": "dict", "options": { "mdt_hello_enable": { - "type": "bool" - } + "type": "bool", + }, }, }, }, }, "mdt_hello_enable": { - "type": "bool" + "type": "bool", }, "pim_tlv_announce": { "type": "dict", "options": { "mdt_hello_enable": { - "type": "bool" - } + "type": "bool", + }, }, }, }, @@ -183,16 +183,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "options": { "number": {"type": "int"}, "immediate_switch": { - "type": "bool" + "type": "bool", }, "list": { "type": "dict", "options": { "access_list_number": { - "type": "int" + "type": "int", }, "access_list_name": { - "type": "str" + "type": "str", }, }, }, @@ -202,10 +202,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "access_list_number": { - "type": "int" + "type": "int", }, "access_list_name": { - "type": "str" + "type": "str", }, }, }, @@ -215,7 +215,7 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "default": { "type": "dict", "options": { - "ingress_replication": {"type": "bool"} + "ingress_replication": {"type": "bool"}, }, }, "direct": {"type": "bool"}, @@ -232,17 +232,17 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "shared_tree_prune_delay": { - "type": "int" + "type": "int", }, "source_tree_prune_delay": { - "type": "int" + "type": "int", }, }, }, "use_bgp": { "type": "dict", "options": { - "spt_only": {"type": "bool"} + "spt_only": {"type": "bool"}, }, }, }, @@ -250,7 +250,7 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "partitioned": { "type": "dict", "options": { - "ingress_replication": {"type": "bool"} + "ingress_replication": {"type": "bool"}, }, }, "strict_rpf": { @@ -280,18 +280,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -299,10 +299,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -311,7 +311,7 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "options": { "iso_tag": {"type": "str"}, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -319,26 +319,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -346,16 +346,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "topology": { @@ -368,18 +368,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -387,10 +387,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -398,10 +398,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -409,26 +409,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -436,20 +436,20 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, }, - } + }, }, }, }, @@ -461,18 +461,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -480,18 +480,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "eigrp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -500,7 +500,7 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "options": { "iso_tag": {"type": "str"}, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -508,26 +508,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -535,16 +535,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, }, @@ -560,18 +560,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -579,10 +579,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -590,10 +590,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -601,26 +601,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -628,16 +628,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "topology": { @@ -650,18 +650,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -669,10 +669,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -680,10 +680,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -691,26 +691,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -718,20 +718,20 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, }, - } + }, }, }, }, @@ -743,18 +743,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -762,18 +762,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "eigrp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -781,10 +781,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -792,26 +792,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -819,16 +819,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, }, @@ -843,18 +843,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -862,10 +862,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -873,10 +873,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -884,26 +884,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -911,16 +911,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "topology": { @@ -933,18 +933,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -952,10 +952,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -963,10 +963,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -974,26 +974,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -1001,20 +1001,20 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, }, - } + }, }, }, }, @@ -1026,18 +1026,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "bgp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -1045,18 +1045,18 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "eigrp": { "type": "dict", "options": { "as_number": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -1064,10 +1064,10 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "iso_tag": { - "type": "str" + "type": "str", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -1075,26 +1075,26 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "odr": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "ospf": { "type": "dict", "options": { "process_id": { - "type": "int" + "type": "int", }, "route_map": { - "type": "str" + "type": "str", }, }, }, @@ -1102,16 +1102,16 @@ class Vrf_address_familyArgs(object): # pylint: disable=R0903 "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, "static": { "type": "dict", "options": { "route_map": { - "type": "str" - } + "type": "str", + }, }, }, }, diff --git a/plugins/module_utils/network/ios/config/vrf_address_family/vrf_address_family.py b/plugins/module_utils/network/ios/config/vrf_address_family/vrf_address_family.py index 02d0a20e4..9f061a760 100644 --- a/plugins/module_utils/network/ios/config/vrf_address_family/vrf_address_family.py +++ b/plugins/module_utils/network/ios/config/vrf_address_family/vrf_address_family.py @@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function + __metaclass__ = type """ @@ -18,15 +19,14 @@ """ from ansible.module_utils.six import iteritems -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import ( - dict_merge, -) from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.resource_module import ( ResourceModule, ) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.facts import ( - Facts, +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import ( + dict_merge, ) + +from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.facts import Facts from ansible_collections.cisco.ios.plugins.module_utils.network.ios.rm_templates.vrf_address_family import ( Vrf_address_familyTemplate, ) @@ -103,11 +103,10 @@ def __init__(self, module): "route_replicate.from.vrf.vrf_name.unicast.static.route_map", "route_target.export", "route_target.import_config", - ] def execute_module(self): - """ Execute the module + """Execute the module :rtype: A dictionary :returns: The result from module execution @@ -118,8 +117,8 @@ def execute_module(self): return self.result def generate_commands(self): - """ Generate configuration commands to send based on - want, have and desired state. + """Generate configuration commands to send based on + want, have and desired state. """ wantd = self.want haved = self.have diff --git a/plugins/module_utils/network/ios/facts/facts.py b/plugins/module_utils/network/ios/facts/facts.py index fb326ca1b..57c03e639 100644 --- a/plugins/module_utils/network/ios/facts/facts.py +++ b/plugins/module_utils/network/ios/facts/facts.py @@ -99,6 +99,9 @@ from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vlans.vlans import ( VlansFacts, ) +from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vrf_address_family.vrf_address_family import ( + Vrf_address_familyFacts, +) from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vrf_global.vrf_global import ( Vrf_globalFacts, ) @@ -108,9 +111,6 @@ from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vxlan_vtep.vxlan_vtep import ( Vxlan_vtepFacts, ) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vrf_address_family.vrf_address_family import ( - Vrf_address_familyFacts, -) FACT_LEGACY_SUBSETS = dict( diff --git a/plugins/module_utils/network/ios/facts/vrf_address_family/vrf_address_family.py b/plugins/module_utils/network/ios/facts/vrf_address_family/vrf_address_family.py index 18b90096d..1ae48b11a 100644 --- a/plugins/module_utils/network/ios/facts/vrf_address_family/vrf_address_family.py +++ b/plugins/module_utils/network/ios/facts/vrf_address_family/vrf_address_family.py @@ -5,6 +5,7 @@ from __future__ import absolute_import, division, print_function + __metaclass__ = type """ @@ -15,25 +16,23 @@ """ -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common import ( - utils, +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common import utils + +from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.vrf_address_family.vrf_address_family import ( + Vrf_address_familyArgs, ) from ansible_collections.cisco.ios.plugins.module_utils.network.ios.rm_templates.vrf_address_family import ( Vrf_address_familyTemplate, ) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.vrf_address_family.vrf_address_family import ( - Vrf_address_familyArgs, -) from ansible_collections.cisco.ios.plugins.module_utils.network.ios.utils.utils import ( flatten_config, ) class Vrf_address_familyFacts(object): - """ The ios vrf_address_family facts class - """ + """The ios vrf_address_family facts class""" - def __init__(self, module, subspec='config', options='options'): + def __init__(self, module, subspec="config", options="options"): self._module = module self.argument_spec = Vrf_address_familyArgs.argument_spec @@ -53,7 +52,7 @@ def _flatten_config(self, config): return "\n".join(finalConfig) def populate_facts(self, connection, ansible_facts, data=None): - """ Populate the facts for Vrf_address_family network resource + """Populate the facts for Vrf_address_family network resource :param connection: the device connection :param ansible_facts: Facts dictionary @@ -74,7 +73,9 @@ def populate_facts(self, connection, ansible_facts, data=None): finalConfig = self._flatten_config(data) # parse native config using the Vrf_address_family template - vrf_address_family_parser = Vrf_address_familyTemplate(lines=finalConfig.splitlines(), module=self._module) + vrf_address_family_parser = Vrf_address_familyTemplate( + lines=finalConfig.splitlines(), module=self._module + ) obj = vrf_address_family_parser.parse() objs = list(obj.values()) @@ -85,14 +86,16 @@ def populate_facts(self, connection, ansible_facts, data=None): else: vrf["address_families"] = [] - ansible_facts['ansible_network_resources'].pop('vrf_address_family', None) + ansible_facts["ansible_network_resources"].pop("vrf_address_family", None) params = utils.remove_empties( - vrf_address_family_parser.validate_config(self.argument_spec, {"config": objs}, redact=True) + vrf_address_family_parser.validate_config( + self.argument_spec, {"config": objs}, redact=True + ), ) - facts['vrf_address_family'] = params.get("config", []) - ansible_facts['ansible_network_resources'].update(facts) + facts["vrf_address_family"] = params.get("config", []) + ansible_facts["ansible_network_resources"].update(facts) return ansible_facts diff --git a/plugins/module_utils/network/ios/rm_templates/vrf_address_family.py b/plugins/module_utils/network/ios/rm_templates/vrf_address_family.py index 7e5b3d595..04ed73b28 100644 --- a/plugins/module_utils/network/ios/rm_templates/vrf_address_family.py +++ b/plugins/module_utils/network/ios/rm_templates/vrf_address_family.py @@ -5,6 +5,7 @@ from __future__ import absolute_import, division, print_function + __metaclass__ = type """ @@ -15,6 +16,7 @@ """ import re + from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.network_template import ( NetworkTemplate, ) @@ -51,7 +53,7 @@ def __init__(self, lines=None, module=None): "safi": ( "{{ safi if safi is defined else " "'unicast' }}" - ) + ), }, }, }, @@ -327,7 +329,8 @@ def __init__(self, lines=None, module=None): ), "setval": ( "inter-as-hybrid csc next-hop " - "{{ inter_as_hybrid.csc.next_hop }}"), + "{{ inter_as_hybrid.csc.next_hop }}" + ), "result": { '{{ name }}': { 'name': '{{ name }}', diff --git a/plugins/modules/ios_vrf_address_family.py b/plugins/modules/ios_vrf_address_family.py index d8df8e899..dad3f69ca 100644 --- a/plugins/modules/ios_vrf_address_family.py +++ b/plugins/modules/ios_vrf_address_family.py @@ -10,6 +10,7 @@ from __future__ import absolute_import, division, print_function + __metaclass__ = type DOCUMENTATION = """ @@ -1120,6 +1121,7 @@ """ from ansible.module_utils.basic import AnsibleModule + from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.vrf_address_family.vrf_address_family import ( Vrf_address_familyArgs, ) diff --git a/tests/integration/targets/ios_vrf_address_family/tests/common/_parsed.cfg b/tests/integration/targets/ios_vrf_address_family/tests/common/_parsed.cfg index 2834e97a5..988821efb 100644 --- a/tests/integration/targets/ios_vrf_address_family/tests/common/_parsed.cfg +++ b/tests/integration/targets/ios_vrf_address_family/tests/common/_parsed.cfg @@ -12,4 +12,4 @@ vrf definition test maximum routes 1 2 reinstall 2 inter-as-hybrid next-hop 1.2.3.4 bgp next-hop Loopback23 - exit-address-family \ No newline at end of file + exit-address-family