mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fix idempotence for nxos_vrf_af (#28419)
This commit is contained in:
parent
f7f3f4b62c
commit
96abfde189
1 changed files with 18 additions and 16 deletions
|
@ -90,13 +90,11 @@ def main():
|
||||||
argument_spec = dict(
|
argument_spec = dict(
|
||||||
vrf=dict(required=True),
|
vrf=dict(required=True),
|
||||||
afi=dict(required=True, choices=['ipv4', 'ipv6']),
|
afi=dict(required=True, choices=['ipv4', 'ipv6']),
|
||||||
|
|
||||||
route_target_both_auto_evpn=dict(required=False, type='bool'),
|
route_target_both_auto_evpn=dict(required=False, type='bool'),
|
||||||
|
state=dict(choices=['present', 'absent'], default='present'),
|
||||||
|
|
||||||
m_facts=dict(default=False, type='bool'),
|
m_facts=dict(default=False, type='bool', removed_in_version="2.4"),
|
||||||
safi=dict(choices=['unicast', 'multicast'], removed_in_version="2.4"),
|
safi=dict(choices=['unicast', 'multicast'], removed_in_version="2.4"),
|
||||||
|
|
||||||
state=dict(choices=['present', 'absent'], default='present')
|
|
||||||
)
|
)
|
||||||
|
|
||||||
argument_spec.update(nxos_argument_spec)
|
argument_spec.update(nxos_argument_spec)
|
||||||
|
@ -120,23 +118,27 @@ def main():
|
||||||
current = None
|
current = None
|
||||||
|
|
||||||
commands = list()
|
commands = list()
|
||||||
|
if current and module.params['state'] == 'absent':
|
||||||
if not current and module.params['state'] == 'present':
|
|
||||||
commands.append('address-family %s unicast' % module.params['afi'])
|
|
||||||
if module.params['route_target_both_auto_evpn']:
|
|
||||||
commands.append('route-target both auto evpn')
|
|
||||||
|
|
||||||
elif current and module.params['state'] == 'absent':
|
|
||||||
commands.append('no address-family %s unicast' % module.params['afi'])
|
commands.append('no address-family %s unicast' % module.params['afi'])
|
||||||
|
|
||||||
elif current:
|
elif module.params['state'] == 'present':
|
||||||
if module.params['route_target_both_auto_evpn']:
|
|
||||||
commands.append('address-family %s unicast' % module.params['afi'])
|
if current:
|
||||||
if 'route-target both auto evpn' in current:
|
have = 'route-target both auto evpn' in current
|
||||||
|
want = bool(module.params['route_target_both_auto_evpn'])
|
||||||
|
|
||||||
|
if want and not have:
|
||||||
|
commands.append('address-family %s unicast' % module.params['afi'])
|
||||||
commands.append('route-target both auto evpn')
|
commands.append('route-target both auto evpn')
|
||||||
else:
|
elif have and not want:
|
||||||
|
commands.append('address-family %s unicast' % module.params['afi'])
|
||||||
commands.append('no route-target both auto evpn')
|
commands.append('no route-target both auto evpn')
|
||||||
|
|
||||||
|
else:
|
||||||
|
commands.append('address-family %s unicast' % module.params['afi'])
|
||||||
|
if module.params['route_target_both_auto_evpn']:
|
||||||
|
commands.append('route-target both auto evpn')
|
||||||
|
|
||||||
if commands:
|
if commands:
|
||||||
commands.insert(0, 'vrf context %s' % module.params['vrf'])
|
commands.insert(0, 'vrf context %s' % module.params['vrf'])
|
||||||
if not module.check_mode:
|
if not module.check_mode:
|
||||||
|
|
Loading…
Reference in a new issue