mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
fix nxos_vrf and migrate get_interface_type to module_utils (#40825)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
parent
45c6fa9784
commit
b4baa2d484
11 changed files with 41 additions and 180 deletions
|
@ -479,3 +479,24 @@ def normalize_interface(name):
|
|||
proper_interface = name
|
||||
|
||||
return proper_interface
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
"""Gets the type of interface
|
||||
"""
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
elif interface.upper().startswith('NV'):
|
||||
return 'nve'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
|
|
@ -179,6 +179,7 @@ except ImportError:
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import get_capabilities, nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
|
@ -209,23 +210,6 @@ def execute_show_command(command, module):
|
|||
return body
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def is_default(interface, module):
|
||||
command = 'show run interface {0}'.format(interface)
|
||||
|
||||
|
|
|
@ -119,34 +119,10 @@ commands:
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import get_capabilities, nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
"""Gets the type of interface
|
||||
Args:
|
||||
interface (str): full name of interface, i.e. Ethernet1/1, loopback10,
|
||||
port-channel20, vlan20
|
||||
Returns:
|
||||
type of interface: ethernet, svi, loopback, management, portchannel,
|
||||
or unknown
|
||||
"""
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def get_interface_mode(interface, module):
|
||||
"""Gets current mode of interface: layer2 or layer3
|
||||
Args:
|
||||
|
|
|
@ -148,6 +148,7 @@ commands:
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import get_capabilities, nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
|
@ -187,23 +188,6 @@ def apply_key_map(key_map, table):
|
|||
return new_dict
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def get_interface_mode(interface, intf_type, module):
|
||||
command = 'show interface {0}'.format(interface)
|
||||
interface = {}
|
||||
|
|
|
@ -191,6 +191,7 @@ changed:
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import get_config, load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec, check_args
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
import re
|
||||
|
@ -227,23 +228,6 @@ def get_interface_mode(interface, intf_type, module):
|
|||
return mode
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def apply_key_map(key_map, table):
|
||||
new_dict = {}
|
||||
for key, value in table.items():
|
||||
|
|
|
@ -203,6 +203,7 @@ from copy import deepcopy
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec, normalize_interface
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.network.common.utils import conditional, remove_default_spec
|
||||
|
||||
|
@ -231,27 +232,6 @@ def search_obj_in_list(name, lst):
|
|||
return None
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
"""Gets the type of interface
|
||||
"""
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
elif interface.upper().startswith('NV'):
|
||||
return 'nve'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def get_interfaces_dict(module):
|
||||
"""Gets all active interfaces on a given switch
|
||||
"""
|
||||
|
|
|
@ -120,36 +120,11 @@ import re
|
|||
from copy import deepcopy
|
||||
|
||||
from ansible.module_utils.network.nxos.nxos import get_config, load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec, get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.network.common.utils import remove_default_spec
|
||||
|
||||
|
||||
def get_interface_type(name):
|
||||
"""Gets the type of interface
|
||||
Args:
|
||||
interface (str): full name of interface, i.e. Ethernet1/1, loopback10,
|
||||
port-channel20, vlan20
|
||||
Returns:
|
||||
type of interface: ethernet, svi, loopback, management, portchannel,
|
||||
or unknown
|
||||
"""
|
||||
if name.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif name.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif name.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif name.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif name.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif name.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def get_interface_mode(name, module):
|
||||
"""Gets current mode of interface: layer2 or layer3
|
||||
Args:
|
||||
|
|
|
@ -135,6 +135,7 @@ import re
|
|||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.network.nxos.nxos import get_config, load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec, check_args
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.six import string_types
|
||||
|
||||
|
||||
|
@ -200,23 +201,6 @@ def local_existing(gexisting):
|
|||
return gexisting, jp_bidir, isauth
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def get_interface_mode(interface, intf_type, module):
|
||||
mode = 'unknown'
|
||||
command = 'show interface {0}'.format(interface)
|
||||
|
|
|
@ -175,7 +175,7 @@ from copy import deepcopy
|
|||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import nxos_argument_spec, get_interface_type
|
||||
from ansible.module_utils.network.common.utils import remove_default_spec
|
||||
|
||||
|
||||
|
@ -262,7 +262,8 @@ def map_obj_to_commands(updates, module):
|
|||
if interfaces and interfaces[0] != 'default':
|
||||
for i in interfaces:
|
||||
commands.append('interface {0}'.format(i))
|
||||
commands.append('no switchport')
|
||||
if get_interface_type(i) in ('ethernet', 'portchannel'):
|
||||
commands.append('no switchport')
|
||||
commands.append('vrf member {0}'.format(name))
|
||||
|
||||
else:
|
||||
|
@ -296,7 +297,8 @@ def map_obj_to_commands(updates, module):
|
|||
commands.append('vrf context {0}'.format(name))
|
||||
commands.append('exit')
|
||||
commands.append('interface {0}'.format(i))
|
||||
commands.append('no switchport')
|
||||
if get_interface_type(i) in ('ethernet', 'portchannel'):
|
||||
commands.append('no switchport')
|
||||
commands.append('vrf member {0}'.format(name))
|
||||
|
||||
elif set(interfaces) != set(obj_in_have['interfaces']):
|
||||
|
@ -305,7 +307,8 @@ def map_obj_to_commands(updates, module):
|
|||
commands.append('vrf context {0}'.format(name))
|
||||
commands.append('exit')
|
||||
commands.append('interface {0}'.format(i))
|
||||
commands.append('no switchport')
|
||||
if get_interface_type(i) in ('ethernet', 'portchannel'):
|
||||
commands.append('no switchport')
|
||||
commands.append('vrf member {0}'.format(name))
|
||||
|
||||
superfluous_interfaces = list(set(obj_in_have['interfaces']) - set(interfaces))
|
||||
|
@ -313,7 +316,8 @@ def map_obj_to_commands(updates, module):
|
|||
commands.append('vrf context {0}'.format(name))
|
||||
commands.append('exit')
|
||||
commands.append('interface {0}'.format(i))
|
||||
commands.append('no switchport')
|
||||
if get_interface_type(i) in ('ethernet', 'portchannel'):
|
||||
commands.append('no switchport')
|
||||
commands.append('no vrf member {0}'.format(name))
|
||||
elif interfaces and interfaces[0] == 'default':
|
||||
if obj_in_have['interfaces']:
|
||||
|
@ -321,7 +325,8 @@ def map_obj_to_commands(updates, module):
|
|||
commands.append('vrf context {0}'.format(name))
|
||||
commands.append('exit')
|
||||
commands.append('interface {0}'.format(i))
|
||||
commands.append('no switchport')
|
||||
if get_interface_type(i) in ('ethernet', 'portchannel'):
|
||||
commands.append('no switchport')
|
||||
commands.append('no vrf member {0}'.format(name))
|
||||
|
||||
if purge:
|
||||
|
|
|
@ -82,6 +82,7 @@ import re
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import get_capabilities, nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
|
@ -97,23 +98,6 @@ def execute_show_command(command, module):
|
|||
return run_commands(module, cmds)[0]
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def get_interface_mode(interface, intf_type, module):
|
||||
command = 'show interface {0}'.format(interface)
|
||||
interface = {}
|
||||
|
|
|
@ -118,6 +118,7 @@ commands:
|
|||
|
||||
from ansible.module_utils.network.nxos.nxos import load_config, run_commands
|
||||
from ansible.module_utils.network.nxos.nxos import get_capabilities, nxos_argument_spec
|
||||
from ansible.module_utils.network.nxos.nxos import get_interface_type
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
|
@ -154,23 +155,6 @@ def apply_key_map(key_map, table):
|
|||
return new_dict
|
||||
|
||||
|
||||
def get_interface_type(interface):
|
||||
if interface.upper().startswith('ET'):
|
||||
return 'ethernet'
|
||||
elif interface.upper().startswith('VL'):
|
||||
return 'svi'
|
||||
elif interface.upper().startswith('LO'):
|
||||
return 'loopback'
|
||||
elif interface.upper().startswith('MG'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('MA'):
|
||||
return 'management'
|
||||
elif interface.upper().startswith('PO'):
|
||||
return 'portchannel'
|
||||
else:
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def is_default(interface, module):
|
||||
command = 'show run interface {0}'.format(interface)
|
||||
|
||||
|
|
Loading…
Reference in a new issue