fix sliver_id in PG manifest RSpec
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Thu, 7 Jul 2011 20:45:18 +0000 (16:45 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Thu, 7 Jul 2011 20:45:18 +0000 (16:45 -0400)
sfa/plc/aggregate.py
sfa/rspecs/pg_rspec.py

index 1cd1933..3afc068 100644 (file)
@@ -102,6 +102,8 @@ class Aggregate:
                     try:
                         sliver = {}
                         sliver['hostname'] = self.nodes[node_id]['hostname']
+                        sliver['node_id'] = node_id
+                        sliver['slice_id'] = slice['slice_id']    
                         sliver['tags'] = []
                         slivers.append(sliver)
                         for tag in tags:
index 002a428..99de732 100755 (executable)
@@ -181,7 +181,6 @@ class PGRSpec(RSpec):
 
         # all nodes hould already be present in the rspec. Remove all 
         # nodes that done have slivers
-        from sfa.util.sfalogging import logger
         slivers = self._process_slivers(slivers)
         slivers_dict = {}
         for sliver in slivers:
@@ -197,7 +196,11 @@ class PGRSpec(RSpec):
                 sliver_info = slivers_dict[hostname]
                 node.set('client_id', hostname)
                 if sliver_urn:
-                    node.set('sliver_id', sliver_urn)
+                    sliver_urn = sliver_urn.replace('+slice+', '+sliver+')
+                    slice_id = sliver_info.get('slice_id', -1)
+                    node_id = sliver_info.get('node_id', -1)
+                    sliver_id = urn_to_sliver_id(sliver_urn, slice_id, node_id)
+                    node.set('sliver_id', sliver_id)
                 sliver_elem = node.xpath('//rspecv2:sliver_type | //sliver_type', namespaces=self.namespaces)
                 if sliver_elem and isinstance(sliver_elem, list):
                     sliver_elem = sliver_elem[0]