store slice_urn in sliver_allocation table
[sfa.git] / sfa / planetlab / pldriver.py
index 93949f5..ac2e660 100644 (file)
@@ -12,6 +12,7 @@ from sfa.util.cache import Cache
 # one would think the driver should not need to mess with the SFA db, but..
 from sfa.storage.alchemy import dbsession
 from sfa.storage.model import RegRecord, SliverAllocation
+from sfa.trust.credential import Credential
 
 # used to be used in get_ticket
 #from sfa.trust.sfaticket import SfaTicket
@@ -55,11 +56,12 @@ class PlDriver (Driver):
 
     def sliver_to_slice_xrn(self, xrn):
         sliver_id_parts = Xrn(xrn).get_sliver_id_parts()
-        slices = self.shell.GetSlices(sliver_id_parts[0])
+        slice_id = int(sliver_id_parts[0])
+        slices = self.shell.GetSlices(slice_id)
         if not slices:
             raise Forbidden("Unable to locate slice record for sliver:  %s" % xrn)
         slice = slices[0]
-        slice_xrn = Xrn(auth=self.hrn, slicename=slice['name'])
+        slice_xrn = PlXrn(auth=self.hrn, slicename=slice['name'])
         return slice_xrn 
  
     def check_sliver_credentials(self, creds, urns):
@@ -643,7 +645,7 @@ class PlDriver (Driver):
        
         # add/remove slice from nodes
         request_nodes = rspec.version.get_nodes_with_slivers()
-        nodes = slices.verify_slice_nodes(slice, request_nodes, peer)
+        nodes = slices.verify_slice_nodes(urn, slice, request_nodes, peer)
          
         # add/remove links links 
         slices.verify_slice_links(slice, rspec.version.get_link_requests(), nodes)