diff --git a/lib/ansible/modules/network/eos/eos_interface.py b/lib/ansible/modules/network/eos/eos_interface.py index 5eb1c5df36..a6503f5169 100644 --- a/lib/ansible/modules/network/eos/eos_interface.py +++ b/lib/ansible/modules/network/eos/eos_interface.py @@ -27,7 +27,8 @@ notes: options: name: description: - - Name of the Interface to be configured on remote device. + - Name of the Interface to be configured on remote device. The name of interface + should be in expanded format and not abbreviated. required: true description: description: diff --git a/lib/ansible/modules/network/eos/eos_vlan.py b/lib/ansible/modules/network/eos/eos_vlan.py index c93cee7aa2..03c11dd8c0 100644 --- a/lib/ansible/modules/network/eos/eos_vlan.py +++ b/lib/ansible/modules/network/eos/eos_vlan.py @@ -45,7 +45,8 @@ options: required: true interfaces: description: - - List of interfaces that should be associated to the VLAN. + - List of interfaces that should be associated to the VLAN. The name of interface + should be in expanded format and not abbreviated. delay: description: - Delay the play should wait to check for declarative intent params values. @@ -214,7 +215,7 @@ def map_config_to_obj(module): if len(splitted_line) > 3: for i in splitted_line[3].split(','): - obj['interfaces'].append(i.strip().replace('Et', 'Ethernet')) + obj['interfaces'].append(i.strip().replace('Et', 'ethernet')) objs.append(obj) @@ -230,6 +231,9 @@ def map_params_to_obj(module): if item.get(key) is None: item[key] = module.params[key] + if item.get('interfaces'): + item['interfaces'] = [intf.replace(" ", "").lower() for intf in item.get('interfaces') if intf] + d = item.copy() d['vlan_id'] = str(d['vlan_id']) @@ -239,7 +243,7 @@ def map_params_to_obj(module): 'vlan_id': str(module.params['vlan_id']), 'name': module.params['name'], 'state': module.params['state'], - 'interfaces': module.params['interfaces'] + 'interfaces': [intf.replace(" ", "").lower() for intf in module.params['interfaces']] if module.params['interfaces'] else [] }) return obj @@ -318,5 +322,6 @@ def main(): module.exit_json(**result) + if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/eos/eos_vrf.py b/lib/ansible/modules/network/eos/eos_vrf.py index 5e73ce306f..66ec30157f 100644 --- a/lib/ansible/modules/network/eos/eos_vrf.py +++ b/lib/ansible/modules/network/eos/eos_vrf.py @@ -45,8 +45,10 @@ options: - Route distinguisher of the VRF interfaces: description: - - List of interfaces to check the VRF has been - configured correctly. + - Identifies the set of interfaces that + should be configured in the VRF. Interfaces must be routed + interfaces in order to be placed into a VRF. The name of interface + should be in expanded format and not abbreviated. aggregate: description: List of VRFs definitions purge: @@ -195,13 +197,13 @@ def map_config_to_obj(module): obj = {} obj['name'] = splitted_line[0] obj['rd'] = splitted_line[1] - obj['interfaces'] = None + obj['interfaces'] = [] if len(splitted_line) > 4: obj['interfaces'] = [] for i in splitted_line[4].split(','): - obj['interfaces'].append(i.strip()) + obj['interfaces'].append(i.strip().lower()) objs.append(obj) @@ -216,13 +218,17 @@ def map_params_to_obj(module): for key in item: if item.get(key) is None: item[key] = module.params[key] + + if item.get('interfaces'): + item['interfaces'] = [intf.replace(" ", "").lower() for intf in item.get('interfaces') if intf] + obj.append(item.copy()) else: obj.append({ 'name': module.params['name'], 'state': module.params['state'], 'rd': module.params['rd'], - 'interfaces': module.params['interfaces'] + 'interfaces': [intf.replace(" ", "").lower() for intf in module.params['interfaces']] if module.params['interfaces'] else [] }) return obj diff --git a/test/integration/targets/eos_vlan/tests/cli/basic.yaml b/test/integration/targets/eos_vlan/tests/cli/basic.yaml index d6d9c66cd9..7da49d6080 100644 --- a/test/integration/targets/eos_vlan/tests/cli/basic.yaml +++ b/test/integration/targets/eos_vlan/tests/cli/basic.yaml @@ -134,9 +134,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" @@ -146,8 +146,8 @@ vlan_id: 4000 state: present interfaces: - - Ethernet1 - - Ethernet2 + - ethernet 1 # interface name modified to test case insensitive and space scenario + - ethernet 2 # interface name modified to test case insensitive and space scenario authorize: yes provider: "{{ cli }}" become: yes @@ -175,7 +175,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" @@ -185,7 +185,7 @@ vlan_id: 4000 state: present interfaces: - - Ethernet1 + - ethernet 1 # interface name modified to handle case insensitive and space scenario authorize: yes provider: "{{ cli }}" become: yes diff --git a/test/integration/targets/eos_vrf/tests/cli/basic.yaml b/test/integration/targets/eos_vrf/tests/cli/basic.yaml index 231bf57aed..748b53d867 100644 --- a/test/integration/targets/eos_vrf/tests/cli/basic.yaml +++ b/test/integration/targets/eos_vrf/tests/cli/basic.yaml @@ -109,7 +109,7 @@ - assert: that: - "result.changed == true" - - "'interface Ethernet2' in result.commands" + - "'interface ethernet2' in result.commands" - "'vrf forwarding test' in result.commands" # Ensure sessions contains epoc. Will fail after 18th May 2033 - "'ansible_1' in result.session_name" @@ -121,7 +121,7 @@ state: present authorize: yes interfaces: - - Ethernet2 + - ethernet 2 # interface name modified to test case insensitive and space scenario provider: "{{ cli }}" become: yes register: result