mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
nxos_vrf fix (#36494)
* nxos_vrf fix Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Address review Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
parent
e224039586
commit
713828804d
1 changed files with 29 additions and 14 deletions
|
@ -224,12 +224,12 @@ def map_obj_to_commands(updates, module):
|
|||
state = module.params['state']
|
||||
purge = module.params['purge']
|
||||
|
||||
args = ('rd', 'description', 'vni')
|
||||
|
||||
for w in want:
|
||||
name = w['name']
|
||||
description = w['description']
|
||||
vni = w['vni']
|
||||
rd = w['rd']
|
||||
admin_state = w['admin_state']
|
||||
vni = w['vni']
|
||||
interfaces = w.get('interfaces') or []
|
||||
state = w['state']
|
||||
del w['state']
|
||||
|
@ -242,22 +242,17 @@ def map_obj_to_commands(updates, module):
|
|||
elif state == 'present':
|
||||
if not obj_in_have:
|
||||
commands.append('vrf context {0}'.format(name))
|
||||
if rd and rd != '':
|
||||
commands.append('rd {0}'.format(rd))
|
||||
if description:
|
||||
commands.append('description {0}'.format(description))
|
||||
if vni and vni != '':
|
||||
commands.append('vni {0}'.format(vni))
|
||||
for item in args:
|
||||
candidate = w.get(item)
|
||||
if candidate:
|
||||
cmd = item + ' ' + str(candidate)
|
||||
commands.append(cmd)
|
||||
if admin_state == 'up':
|
||||
commands.append('no shutdown')
|
||||
elif admin_state == 'down':
|
||||
commands.append('shutdown')
|
||||
|
||||
if commands:
|
||||
if vni:
|
||||
if have.get('vni') and have.get('vni') != '':
|
||||
commands.insert(1, 'no vni {0}'.format(have['vni']))
|
||||
commands.append('exit')
|
||||
|
||||
if interfaces:
|
||||
for i in interfaces:
|
||||
commands.append('interface {0}'.format(i))
|
||||
|
@ -265,6 +260,26 @@ def map_obj_to_commands(updates, module):
|
|||
commands.append('vrf member {0}'.format(name))
|
||||
|
||||
else:
|
||||
# If vni is already configured on vrf, unconfigure it first.
|
||||
if vni:
|
||||
if obj_in_have.get('vni') and vni != obj_in_have.get('vni'):
|
||||
commands.append('no vni {0}'.format(obj_in_have.get('vni')))
|
||||
|
||||
for item in args:
|
||||
candidate = w.get(item)
|
||||
if candidate and candidate != obj_in_have.get(item):
|
||||
cmd = item + ' ' + str(candidate)
|
||||
commands.append(cmd)
|
||||
if admin_state and admin_state != obj_in_have.get('admin_state'):
|
||||
if admin_state == 'up':
|
||||
commands.append('no shutdown')
|
||||
elif admin_state == 'down':
|
||||
commands.append('shutdown')
|
||||
|
||||
if commands:
|
||||
commands.insert(0, 'vrf context {0}'.format(name))
|
||||
commands.append('exit')
|
||||
|
||||
if interfaces:
|
||||
if not obj_in_have['interfaces']:
|
||||
for i in interfaces:
|
||||
|
|
Loading…
Reference in a new issue