Fix nxos_switchport (#37328)

pull/34637/merge
Mike Wiebe 6 years ago committed by Trishna Guha
parent 9031533c0c
commit ff57fd0bb4

@ -269,18 +269,23 @@ def remove_switchport_config_commands(interface, existing, proposed, module):
commands.append(command) commands.append(command)
elif mode == 'trunk': elif mode == 'trunk':
tv_check = existing.get('trunk_vlans_list') == proposed.get('trunk_vlans_list')
if tv_check:
existing_vlans = existing.get('trunk_vlans_list')
proposed_vlans = proposed.get('trunk_vlans_list')
vlans_to_remove = set(proposed_vlans).intersection(existing_vlans)
if vlans_to_remove: # Supported Remove Scenarios for trunk_vlans_list
proposed_allowed_vlans = proposed.get('trunk_allowed_vlans') # 1) Existing: 1,2,3 Proposed: 1,2,3 - Remove all
remove_trunk_allowed_vlans = proposed.get('trunk_vlans', proposed_allowed_vlans) # 2) Existing: 1,2,3 Proposed: 1,2 - Remove 1,2 Leave 3
command = 'switchport trunk allowed vlan remove {0}'.format(remove_trunk_allowed_vlans) # 3) Existing: 1,2,3 Proposed: 2,3 - Remove 2,3 Leave 1
commands.append(command) # 4) Existing: 1,2,3 Proposed: 4,5,6 - None removed.
# 5) Existing: None Proposed: 1,2,3 - None removed.
existing_vlans = existing.get('trunk_vlans_list')
proposed_vlans = proposed.get('trunk_vlans_list')
vlans_to_remove = set(proposed_vlans).intersection(existing_vlans)
if vlans_to_remove:
proposed_allowed_vlans = proposed.get('trunk_allowed_vlans')
remove_trunk_allowed_vlans = proposed.get('trunk_vlans', proposed_allowed_vlans)
command = 'switchport trunk allowed vlan remove {0}'.format(remove_trunk_allowed_vlans)
commands.append(command)
native_check = existing.get('native_vlan') == proposed.get('native_vlan') native_check = existing.get('native_vlan') == proposed.get('native_vlan')
if native_check and proposed.get('native_vlan'): if native_check and proposed.get('native_vlan'):

@ -88,7 +88,7 @@
- assert: *false - assert: *false
- name: Ensure these VLANs are not being tagged on the trunk - name: Remove full trunk vlan range 2-50.
nxos_switchport: &no_tag nxos_switchport: &no_tag
interface: "{{ intname }}" interface: "{{ intname }}"
mode: trunk mode: trunk
@ -99,12 +99,41 @@
- assert: *true - assert: *true
- name: "no tag vlan Idempotence" - name: Check Idempotence Remove full trunk vlan range 2-50.
nxos_switchport: *no_tag nxos_switchport: *no_tag
register: result register: result
- assert: *false - assert: *false
- name: Reconfigure interface trunk port and ensure 2-50 are being tagged
nxos_switchport: *tag
register: result
- assert: *true
- name: Check Idempotence Reconfigure interface trunk port and ensure 2-50 are being tagged
nxos_switchport: *tag
register: result
- assert: *false
- name: Remove partial trunk vlan range 30-4096 are removed
nxos_switchport: &partial
interface: "{{ intname }}"
mode: trunk
trunk_vlans: 30-4094
state: absent
provider: "{{ connection }}"
register: result
- assert: *true
- name: Check Idempotence Remove partial trunk vlan range 30-4096 are removed
nxos_switchport: *partial
register: result
- assert: *false
- name: put interface default state - name: put interface default state
nxos_switchport: *def_swi nxos_switchport: *def_swi
register: result register: result

Loading…
Cancel
Save