From 99627ab99df193789dde7b9f8af3fb6edd59e0fa Mon Sep 17 00:00:00 2001 From: Jeremy Lee Date: Mon, 19 Feb 2018 05:22:41 -0500 Subject: [PATCH] =?UTF-8?q?eos=5Fvlan:=20Modified=20logic=20to=20allow=20f?= =?UTF-8?q?or=20more=20than=206=20interfaces=20to=20be=20assigned=20to=20?= =?UTF-8?q?=E2=80=A6=20(#35568)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Modified logic to allow for more than 6 interfaces to be assigned to a vlan * arista output to json. removing logic for string size. --- lib/ansible/modules/network/eos/eos_vlan.py | 24 ++++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/ansible/modules/network/eos/eos_vlan.py b/lib/ansible/modules/network/eos/eos_vlan.py index de6a2e29295..3ee50b160d1 100644 --- a/lib/ansible/modules/network/eos/eos_vlan.py +++ b/lib/ansible/modules/network/eos/eos_vlan.py @@ -199,24 +199,22 @@ def map_obj_to_commands(updates, module): def map_config_to_obj(module): objs = [] - output = run_commands(module, ['show vlan']) - lines = output[0].strip().splitlines()[2:] + vlans = run_commands(module, ['show vlan conf | json']) - for l in lines: - splitted_line = re.split(r'\s{2,}', l.strip()) + for vlan in vlans[0]['vlans']: obj = {} - obj['vlan_id'] = splitted_line[0] - obj['name'] = splitted_line[1] - obj['state'] = splitted_line[2] + obj['vlan_id'] = vlan + obj['name'] = vlans[0]['vlans'][vlan]['name'] + obj['state'] = vlans[0]['vlans'][vlan]['status'] + obj['interfaces'] = [] - if obj['state'] == 'suspended': - obj['state'] = 'suspend' + interfaces = vlans[0]['vlans'][vlan] - obj['interfaces'] = [] - if len(splitted_line) > 3: + for interface in interfaces['interfaces']: + obj['interfaces'].append(interface) - for i in splitted_line[3].split(','): - obj['interfaces'].append(i.strip().replace('Et', 'ethernet')) + if obj['state'] == 'suspended': + obj['state'] = 'suspend' objs.append(obj)