From: smbaker Date: Mon, 28 Nov 2011 11:14:22 +0000 (-0800) Subject: fix get_networks not working right in pgv2 rspec X-Git-Tag: sfa-2.0-1~4 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=c190f24db5fab19b854aaf8d01718a24790252b0;p=sfa.git fix get_networks not working right in pgv2 rspec --- 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