From c190f24db5fab19b854aaf8d01718a24790252b0 Mon Sep 17 00:00:00 2001 From: smbaker Date: Mon, 28 Nov 2011 03:14:22 -0800 Subject: [PATCH] fix get_networks not working right in pgv2 rspec --- sfa/rspecs/versions/pgv2.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/sfa/rspecs/versions/pgv2.py b/sfa/rspecs/versions/pgv2.py index fba1a264..c6a030ba 100644 --- a/sfa/rspecs/versions/pgv2.py +++ b/sfa/rspecs/versions/pgv2.py @@ -19,16 +19,23 @@ class PGv2(BaseVersion): } namespaces = dict(extensions.items() + [('default', namespace)]) - # Networks + # Networks def get_networks(self): - networks = set() - nodes = self.xml.xpath('//default:node[@component_manager_id] | //node:[@component_manager_id]', namespaces=self.namespaces) - for node in nodes: - if 'component_manager_id' in node: - network_urn = node.get('component_manager_id') - network_hrn = Xrn(network_urn).get_hrn()[0] - networks.add({'name': network_hrn}) - return list(networks) + network_names = set() + nodes = self.xml.xpath('//default:node[@component_manager_id] | //node[@component_manager_id]', namespaces=self.namespaces) + for node in nodes: + if 'component_manager_id' in node.attrib: + network_urn = node.get('component_manager_id') + if network_urn.startswith("urn:"): + network_hrn = Xrn(network_urn).get_hrn()[0] + else: + # some component_manager_ids are hrns instead of urns?? + network_hrn = network_urn + network_names.add(network_hrn) + print "PPP", network_names, network_hrn, network_urn + network_names = list(network_names) + networks = [{"name": x} for x in network_names] + return networks # Nodes -- 2.45.2