- nodes = AdmGetNodes([], ['node_id', 'hostname'])
- plcapi.begin()
- for node in nodes:
- AdmGetAllNodeNetworks(node['node_id'])
- nodenetworks_list = plcapi.commit()
- if nodenetworks_list is not None:
- for i, nodenetworks in enumerate(nodenetworks_list):
- for nodenetwork in nodenetworks:
- if nodenetwork['hostname']:
- hostname = nodenetwork['hostname']
- else:
- hostname = nodes[i]['hostname']
-
- if hosts.has_key(nodenetwork['ip']):
- if hostname not in hosts[nodenetwork['ip']]:
- hosts[nodenetwork['ip']].append(hostname)
- else:
- hosts[nodenetwork['ip']] = [hostname]
+
+ nodes = {}
+ for node in GetNodes():
+ nodes[node['node_id']] = node
+
+ nodenetwork_ids = set()
+ for node in nodes.values():
+ nodenetwork_ids.update(node['nodenetwork_ids'])
+
+ for nodenetwork in GetNodeNetworks(list(nodenetwork_ids)):
+ if not nodenetwork['ip']:
+ continue
+
+ if nodenetwork['hostname']:
+ hostname = nodenetwork['hostname']
+ else:
+ hostname = nodes[nodenetwork['node_id']]['hostname']
+
+ if hosts.has_key(nodenetwork['ip']):
+ if hostname not in hosts[nodenetwork['ip']]:
+ hosts[nodenetwork['ip']].append(hostname)
+ else:
+ hosts[nodenetwork['ip']] = [hostname]