From 5f7f61d1fc1271b5b7fd99b7095b9d10f90313b2 Mon Sep 17 00:00:00 2001
From: Tony Mack <tmack@paris.CS.Princeton.EDU>
Date: Thu, 23 Jun 2011 19:51:53 -0400
Subject: [PATCH] identify nodes by componet_id attribute instead of
 component_name attribute. component_name is not required and may not be
 present

---
 sfa/rspecs/pg_rspec.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/sfa/rspecs/pg_rspec.py b/sfa/rspecs/pg_rspec.py
index cc73047d..c2a04d8f 100755
--- a/sfa/rspecs/pg_rspec.py
+++ b/sfa/rspecs/pg_rspec.py
@@ -3,7 +3,7 @@ from lxml import etree
 from StringIO import StringIO
 from sfa.rspecs.rspec import RSpec 
 from sfa.util.xrn import *
-from sfa.util.plxrn import hostname_to_urn
+from sfa.util.plxrn import hostname_to_urn, xrn_to_hostname
 from sfa.util.config import Config 
 from sfa.rspecs.rspec_version import RSpecVersion 
 
@@ -79,14 +79,18 @@ class PGRSpec(RSpec):
         return nodes
 
     def get_nodes(self, network=None):
-        xpath = '//rspecv2:node[@component_name]/@component_name | //node[@component_name]/@component_name'
-        return self.xml.xpath(xpath, namespaces=self.namespaces) 
+        xpath = '//rspecv2:node[@component_name]/@component_id | //node[@component_name]/@component_id'
+        nodes = self.xml.xpath(xpath, namespaces=self.namespaces)
+        nodes = [xrn_to_hostname(node) for node in nodes]
+        return nodes 
 
     def get_nodes_with_slivers(self, network=None):
         if network:
-            return self.xml.xpath('//rspecv2:node[@component_manager_id="%s"][sliver_type]/@component_name' % network, namespaces=self.namespaces)
+            nodes = self.xml.xpath('//rspecv2:node[@component_manager_id="%s"][sliver_type]/@component_id' % network, namespaces=self.namespaces)
         else:
-            return self.xml.xpath('//rspecv2:node[rspecv2:sliver_type]/@component_name', namespaces=self.namespaces)
+            nodes = self.xml.xpath('//rspecv2:node[rspecv2:sliver_type]/@component_id', namespaces=self.namespaces)
+        nodes = [xrn_to_hostname(node) for node in nodes]
+        return nodes
 
     def get_nodes_without_slivers(self, network=None):
         pass
-- 
2.47.0