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:
Trishna Guha 2018-02-21 19:33:33 +05:30 committed by GitHub
parent e224039586
commit 713828804d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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: