nxos_vlan purge (#38202)

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
Trishna Guha 2018-04-03 02:53:44 -04:00 committed by GitHub
parent 24cc6b80bd
commit 119352b538
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 0 deletions

View file

@ -83,6 +83,7 @@ options:
purge:
description:
- Purge VLANs not defined in the I(aggregate) parameter.
This parameter can be used without aggregate as well.
type: bool
default: 'no'
delay:
@ -131,6 +132,14 @@ EXAMPLES = '''
aggregate:
- { vlan_id: 4000, mode: ce }
- { vlan_id: 4001, name: vlan-4001 }
- name: purge vlans - removes all other vlans except the ones mentioned in aggregate)
nxos_vlan:
aggregate:
- vlan_id: 1
- vlan_id: 4001
purge: yes
'''
RETURN = '''
@ -184,6 +193,7 @@ def is_default_name(obj, vlan_id):
def map_obj_to_commands(updates, module, os_platform):
commands = list()
purge = module.params['purge']
want, have = updates
for w in want:
@ -307,6 +317,12 @@ def map_obj_to_commands(updates, module, os_platform):
commands.append('switchport mode access')
commands.append('no switchport access vlan {0}'.format(vlan_id))
if purge:
for h in have:
obj_in_want = search_obj_in_list(h['vlan_id'], want)
if not obj_in_want:
commands.append('no vlan {0}'.format(h['vlan_id']))
return commands

View file

@ -63,6 +63,27 @@
that:
- 'result.changed == false'
- name: purge
nxos_vlan: &purge
vlan_id: 1
purge: yes
provider: "{{ connection }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"no vlan 102" in result.commands'
- '"no vlan 103" in result.commands'
- name: purge - Idempotence
nxos_vlan: *purge
register: result
- assert:
that:
- 'result.changed == false'
- name: teardown
nxos_config: *rm
ignore_errors: yes