mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Implement purge on eos_vrf (#28013)
This commit is contained in:
parent
1c4e491eac
commit
e8f1c1511c
2 changed files with 36 additions and 1 deletions
|
@ -91,6 +91,7 @@ def map_obj_to_commands(updates, module):
|
|||
commands = list()
|
||||
want, have = updates
|
||||
state = module.params['state']
|
||||
purge = module.params['purge']
|
||||
|
||||
for w in want:
|
||||
name = w['name']
|
||||
|
@ -100,7 +101,7 @@ def map_obj_to_commands(updates, module):
|
|||
obj_in_have = search_obj_in_list(name, have)
|
||||
|
||||
if state == 'absent':
|
||||
if have:
|
||||
if obj_in_have:
|
||||
commands.append('no vrf definition %s' % name)
|
||||
elif state == 'present':
|
||||
if not obj_in_have:
|
||||
|
@ -130,6 +131,12 @@ def map_obj_to_commands(updates, module):
|
|||
commands.append('interface %s' % i)
|
||||
commands.append('vrf forwarding %s' % w['name'])
|
||||
|
||||
if purge:
|
||||
for h in have:
|
||||
obj_in_want = search_obj_in_list(h['name'], want)
|
||||
if not obj_in_want:
|
||||
commands.append('no vrf definition %s' % h['name'])
|
||||
|
||||
return commands
|
||||
|
||||
|
||||
|
|
|
@ -161,6 +161,30 @@
|
|||
# Ensure sessions contains epoc. Will fail after 18th May 2033
|
||||
- "result.session_name is not defined"
|
||||
|
||||
- name: Create aggregate of VRFs with purge
|
||||
eos_vrf:
|
||||
aggregate:
|
||||
- { name: test4, rd: "1:204" }
|
||||
- { name: test5, rd: "1:205" }
|
||||
state: present
|
||||
purge: yes
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'vrf definition test4' in result.commands"
|
||||
- "'rd 1:204' in result.commands"
|
||||
- "'vrf definition test5' in result.commands"
|
||||
- "'rd 1:205' in result.commands"
|
||||
- "'no vrf definition test' in result.commands"
|
||||
- "'no vrf definition test2' in result.commands"
|
||||
- "'no vrf definition test3' in result.commands"
|
||||
# Ensure sessions contains epoc. Will fail after 18th May 2033
|
||||
- "'ansible_1' in result.session_name"
|
||||
|
||||
- name: Delete VRFs
|
||||
eos_vrf:
|
||||
name: test
|
||||
|
@ -180,6 +204,8 @@
|
|||
aggregate:
|
||||
- { name: test2 }
|
||||
- { name: test3 }
|
||||
- { name: test4 }
|
||||
- { name: test5 }
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
@ -189,6 +215,8 @@
|
|||
aggregate:
|
||||
- { name: test2 }
|
||||
- { name: test3 }
|
||||
- { name: test4 }
|
||||
- { name: test5 }
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
|
Loading…
Reference in a new issue