Add fabricpath support for nxos_vlan (#26013)

* Add files via upload

Fix for issue #25720

* nxos_vlan fabricpath (#25720)

Fix for issue #25720

* Add files via upload

* Add files via upload

* Delete nxos_vlan.py

* Add files via upload

* Add files via upload
This commit is contained in:
Dennis Israelsson 2017-08-01 19:27:47 +02:00 committed by Chris Alfonso
parent 448c461940
commit d7202e6155

View file

@ -74,6 +74,13 @@ options:
required: false required: false
default: present default: present
choices: ['present','absent'] choices: ['present','absent']
mode:
description:
- Set VLAN mode to classical ethernet or fabricpath.
required: false
default: null
choices: ['ce','fabricpath']
version_added: "2.4"
''' '''
EXAMPLES = ''' EXAMPLES = '''
@ -228,6 +235,7 @@ def get_vlan(vlanid, module):
try: try:
body = run_commands(module, [command])[0] body = run_commands(module, [command])[0]
vlan_table = body['TABLE_vlanbriefid']['ROW_vlanbriefid'] vlan_table = body['TABLE_vlanbriefid']['ROW_vlanbriefid']
mtu_table = body['TABLE_mtuinfoid']['ROW_mtuinfoid']
except (TypeError, IndexError, KeyError): except (TypeError, IndexError, KeyError):
return {} return {}
@ -240,11 +248,18 @@ def get_vlan(vlanid, module):
vlan = apply_key_map(key_map, vlan_table) vlan = apply_key_map(key_map, vlan_table)
vlan['mode'] = mtu_table['vlanshowinfo-vlanmode']
value_map = { value_map = {
"admin_state": { "admin_state": {
"shutdown": "down", "shutdown": "down",
"noshutdown": "up" "noshutdown": "up"
},
"mode": {
"fabricpath-vlan": "fabricpath",
"ce-vlan": "ce"
} }
} }
vlan = apply_value_map(value_map, vlan) vlan = apply_value_map(value_map, vlan)
@ -284,6 +299,7 @@ def main():
mapped_vni=dict(required=False, type='str'), mapped_vni=dict(required=False, type='str'),
state=dict(choices=['present', 'absent'], default='present', required=False), state=dict(choices=['present', 'absent'], default='present', required=False),
admin_state=dict(choices=['up', 'down'], required=False), admin_state=dict(choices=['up', 'down'], required=False),
mode=dict(choices=['ce', 'fabricpath'], required=False),
# Deprecated in Ansible 2.4 # Deprecated in Ansible 2.4
include_defaults=dict(default=False), include_defaults=dict(default=False),
@ -309,13 +325,14 @@ def main():
admin_state = module.params['admin_state'] admin_state = module.params['admin_state']
mapped_vni = module.params['mapped_vni'] mapped_vni = module.params['mapped_vni']
state = module.params['state'] state = module.params['state']
mode = module.params['mode']
if vlan_id: if vlan_id:
if not vlan_id.isdigit(): if not vlan_id.isdigit():
module.fail_json(msg='vlan_id must be a valid VLAN ID') module.fail_json(msg='vlan_id must be a valid VLAN ID')
args = dict(name=name, vlan_state=vlan_state, args = dict(name=name, vlan_state=vlan_state,
admin_state=admin_state, mapped_vni=mapped_vni) admin_state=admin_state, mapped_vni=mapped_vni, mode=mode)
proposed = dict((k, v) for k, v in args.items() if v is not None) proposed = dict((k, v) for k, v in args.items() if v is not None)