diff options
author | Steve Dodd <stevend@idahood.com> | 2018-11-12 00:01:27 -0700 |
---|---|---|
committer | Matt Clay <matt@mystile.com> | 2018-12-10 12:14:32 -0800 |
commit | 4caef8413e4c2cc93fdc3958fbfd6476436afd48 (patch) | |
tree | 28e104c103689aab0a29782d10c3e6ada5a92cd6 | |
parent | 30b7f833e53368c36bbfbbf04a0caafc50934892 (diff) | |
download | ansible-4caef8413e4c2cc93fdc3958fbfd6476436afd48.tar.gz |
Fix LLDP to use json (#48318)
(cherry picked from commit e51964e7a6552bab3cfb7c2dfe07dd33512f477a)
-rw-r--r-- | lib/ansible/modules/network/nxos/nxos_facts.py | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/ansible/modules/network/nxos/nxos_facts.py b/lib/ansible/modules/network/nxos/nxos_facts.py index 5dbae8a203..0e8d535720 100644 --- a/lib/ansible/modules/network/nxos/nxos_facts.py +++ b/lib/ansible/modules/network/nxos/nxos_facts.py @@ -398,14 +398,16 @@ class Interfaces(FactsBase): data = self.run('show lldp neighbors') if data: - self.facts['neighbors'] = self.populate_neighbors(data) + self.facts['neighbors'].update(self.populate_neighbors(data)) data = self.run('show cdp neighbors detail', output='json') if data: if isinstance(data, dict): - self.facts['neighbors'] = self.populate_structured_neighbors_cdp(data) + self.facts['neighbors'].update(self.populate_structured_neighbors_cdp(data)) else: - self.facts['neighbors'] = self.populate_neighbors_cdp(data) + self.facts['neighbors'].update(self.populate_neighbors_cdp(data)) + + self.facts['neighbors'].pop(None, None) # Remove null key def populate_structured_interfaces(self, data): interfaces = dict() @@ -450,6 +452,23 @@ class Interfaces(FactsBase): except TypeError: return "" + def populate_structured_neighbors_lldp(self, data): + objects = dict() + data = data['TABLE_nbor']['ROW_nbor'] + + if isinstance(data, dict): + data = [data] + + for item in data: + local_intf = item['l_port_id'] + objects[local_intf] = list() + nbor = dict() + nbor['port'] = item['port_id'] + nbor['sysname'] = item['chassis_id'] + objects[local_intf].append(nbor) + + return objects + def populate_structured_neighbors_cdp(self, data): objects = dict() data = data['TABLE_cdp_neighbor_detail_info']['ROW_cdp_neighbor_detail_info'] |