From 8d570e67dbc9de1613667c075dcc6013a009f735 Mon Sep 17 00:00:00 2001 From: Ganesh Nalawade Date: Fri, 4 May 2018 20:14:48 +0530 Subject: [PATCH] Fix eos_vlan associated interface check (#39661) (#39738) * Fix eos_vlan associated interface check Fix eos_vlan associated interface check by comparing the interface in want and have without converting the interface name to lower * Update eos_vlan docs * Update changelog (cherry picked from commit afdc2364f2c3c8f5876f51586eef08f2dcf27d24) --- .../fragments/eos_vlan_interface_name_fix.yaml | 2 ++ lib/ansible/modules/network/eos/eos_vlan.py | 18 +++++++++--------- .../targets/eos_vlan/tests/cli/basic.yaml | 12 ++++++------ 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 changelogs/fragments/eos_vlan_interface_name_fix.yaml diff --git a/changelogs/fragments/eos_vlan_interface_name_fix.yaml b/changelogs/fragments/eos_vlan_interface_name_fix.yaml new file mode 100644 index 00000000000..ac693b3adab --- /dev/null +++ b/changelogs/fragments/eos_vlan_interface_name_fix.yaml @@ -0,0 +1,2 @@ +bugfixes: + - eos_vlan - Fix eos_vlan associated interface name check (https://github.com/ansible/ansible/pull/39661) diff --git a/lib/ansible/modules/network/eos/eos_vlan.py b/lib/ansible/modules/network/eos/eos_vlan.py index 5958b9b0b0d..ff3f5e3dd1a 100644 --- a/lib/ansible/modules/network/eos/eos_vlan.py +++ b/lib/ansible/modules/network/eos/eos_vlan.py @@ -45,14 +45,14 @@ options: required: true interfaces: description: - - List of interfaces that should be associated to the VLAN. The name of interface - should be in expanded format and not abbreviated. + - List of interfaces that should be associated to the VLAN. The name of interface is + case sensitive and should be in expanded format and not abbreviated. associated_interfaces: description: - This is a intent option and checks the operational state of the for given vlan C(name) - for associated interfaces. The name of interface should be in expanded format and not abbreviated. - If the value in the C(associated_interfaces) does not match with the operational state of vlan - interfaces on device it will result in failure. + for associated interfaces. The name of interface is case sensitive and should be in + expanded format and not abbreviated. If the value in the C(associated_interfaces) + does not match with the operational state of vlan interfaces on device it will result in failure. version_added: "2.5" delay: description: @@ -245,10 +245,10 @@ def map_params_to_obj(module): item[key] = module.params[key] if item.get('interfaces'): - item['interfaces'] = [intf.replace(" ", "").lower() for intf in item.get('interfaces') if intf] + item['interfaces'] = [intf.replace(" ", "") for intf in item.get('interfaces') if intf] if item.get('associated_interfaces'): - item['associated_interfaces'] = [intf.replace(" ", "").lower() for intf in item.get('associated_interfaces') if intf] + item['associated_interfaces'] = [intf.replace(" ", "") for intf in item.get('associated_interfaces') if intf] d = item.copy() d['vlan_id'] = str(d['vlan_id']) @@ -259,8 +259,8 @@ def map_params_to_obj(module): 'vlan_id': str(module.params['vlan_id']), 'name': module.params['name'], 'state': module.params['state'], - 'interfaces': [intf.replace(" ", "").lower() for intf in module.params['interfaces']] if module.params['interfaces'] else [], - 'associated_interfaces': [intf.replace(" ", "").lower() for intf in + 'interfaces': [intf.replace(" ", "") for intf in module.params['interfaces']] if module.params['interfaces'] else [], + 'associated_interfaces': [intf.replace(" ", "") for intf in module.params['associated_interfaces']] if module.params['associated_interfaces'] else [] }) diff --git a/test/integration/targets/eos_vlan/tests/cli/basic.yaml b/test/integration/targets/eos_vlan/tests/cli/basic.yaml index b3821230e6e..1d1bd979205 100644 --- a/test/integration/targets/eos_vlan/tests/cli/basic.yaml +++ b/test/integration/targets/eos_vlan/tests/cli/basic.yaml @@ -137,9 +137,9 @@ that: - "result.changed == true" - "'vlan 4000' in result.commands" - - "'interface ethernet1' in result.commands" + - "'interface Ethernet1' in result.commands" - "'switchport access vlan 4000' in result.commands" - - "'interface ethernet2' in result.commands" + - "'interface Ethernet2' in result.commands" - "'switchport access vlan 4000' in result.commands" # Ensure sessions contains epoc. Will fail after 18th May 2033 - "'ansible_1' in result.session_name" @@ -149,8 +149,8 @@ vlan_id: 4000 state: present interfaces: - - ethernet 1 # interface name modified to test case insensitive and space scenario - - ethernet 2 # interface name modified to test case insensitive and space scenario + - Ethernet 1 # interface name space scenario + - Ethernet 2 # interface name space scenario authorize: yes provider: "{{ cli }}" become: yes @@ -194,7 +194,7 @@ that: - "result.changed == true" - "'vlan 4000' in result.commands" - - "'interface ethernet2' in result.commands" + - "'interface Ethernet2' in result.commands" - "'no switchport access vlan 4000' in result.commands" # Ensure sessions contains epoc. Will fail after 18th May 2033 - "'ansible_1' in result.session_name" @@ -204,7 +204,7 @@ vlan_id: 4000 state: present interfaces: - - ethernet 1 # interface name modified to handle case insensitive and space scenario + - Ethernet 1 # space scenario authorize: yes provider: "{{ cli }}" become: yes