fixes error parsing lldp neighbors when running nxos_facts (#23134)

(cherry picked from commit 2e476e64cd)
This commit is contained in:
Peter Sprygada 2017-03-30 11:30:50 -04:00 committed by Peter Sprygada
parent 1b188c1fb9
commit 7afc9ac899

View file

@ -320,19 +320,18 @@ class Interfaces(FactsBase):
if data.startswith('ERROR'):
return dict()
data = data['TABLE_nbor']['ROW_nbor']
if isinstance(data, dict):
data = [data]
lines = data.split('\n')
regex = re.compile('(\S+)\s+(\S+)\s+\d+\s+\w+\s+(\S+)')
objects = dict()
for item in data:
local_intf = item['l_port_id']
if local_intf not in objects:
objects[local_intf] = list()
nbor = dict()
nbor['port'] = item['port_id']
nbor['host'] = item['chassis_id']
objects[local_intf].append(nbor)
for item in data.split('\n')[4:-1]:
match = regex.match(item)
if match:
nbor = {'host': match.group(1), 'port': match.group(3)}
if match.group(2) not in objects:
objects[match.group(2)] = []
objects[match.group(2)].append(nbor)
return objects
def parse_ipv6_interfaces(self, data):