sfadump more usable
[sfa.git] / sfa / managers / slice_manager_pl.py
index 43d3392..eee8693 100644 (file)
@@ -1,16 +1,17 @@
 ### $Id: slices.py 15842 2009-11-22 09:56:13Z anil $
 ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/plc/slices.py $
 
-import datetime
-import time
-import traceback
 import sys
-from copy import deepcopy
-from lxml import etree
+import time,datetime
 from StringIO import StringIO
 from types import StringTypes
+from copy import deepcopy
+from copy import copy
+from lxml import etree
+
+from sfa.util.sfalogging import sfa_logger
 from sfa.util.rspecHelper import merge_rspecs
-from sfa.util.namespace import *
+from sfa.util.namespace import urn_to_hrn, hrn_to_urn
 from sfa.util.rspec import *
 from sfa.util.specdict import *
 from sfa.util.faults import *
@@ -22,7 +23,6 @@ from sfa.trust.credential import Credential
 from sfa.util.threadmanager import ThreadManager
 import sfa.util.xmlrpcprotocol as xmlrpcprotocol     
 import sfa.plc.peers as peers
-from copy import copy
 
 def get_version():
     version = {}
@@ -83,6 +83,8 @@ def create_slice(api, xrn, creds, rspec, users):
     return merged_rspec
 
 def renew_slice(api, xrn, creds, expiration_time):
+    hrn, type = urn_to_hrn(xrn)
+
     # get the callers hrn
     valid_cred = api.auth.checkCredentials(creds, 'renewesliver', hrn)[0]
     caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
@@ -114,7 +116,7 @@ def get_ticket(api, xrn, creds, rspec, users):
         aggregate_rspecs[aggregate_hrn] = rspec 
 
     # get the callers hrn
-    valid_cred = api.auth.checkCredentials(creds, 'getticket', hrn)[0]
+    valid_cred = api.auth.checkCredentials(creds, 'getticket', slice_hrn)[0]
     caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
 
     # attempt to use delegated credential first
@@ -182,6 +184,8 @@ def get_ticket(api, xrn, creds, rspec, users):
 
 
 def delete_slice(api, xrn, creds):
+    hrn, type = urn_to_hrn(xrn)
+
     # get the callers hrn
     valid_cred = api.auth.checkCredentials(creds, 'deletesliver', hrn)[0]
     caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
@@ -202,6 +206,8 @@ def delete_slice(api, xrn, creds):
     return 1
 
 def start_slice(api, xrn, creds):
+    hrn, type = urn_to_hrn(xrn)
+
     # get the callers hrn
     valid_cred = api.auth.checkCredentials(creds, 'startslice', hrn)[0]
     caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
@@ -222,6 +228,8 @@ def start_slice(api, xrn, creds):
     return 1
  
 def stop_slice(api, xrn, creds):
+    hrn, type = urn_to_hrn(xrn)
+
     # get the callers hrn
     valid_cred = api.auth.checkCredentials(creds, 'stopslice', hrn)[0]
     caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
@@ -268,7 +276,7 @@ def get_slices(api, creds):
             return slices    
 
     # get the callers hrn
-    valid_cred = api.auth.checkCredentials(creds, 'listslices', hrn)[0]
+    valid_cred = api.auth.checkCredentials(creds, 'listslices', None)[0]
     caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
 
     # attempt to use delegated credential first
@@ -357,6 +365,7 @@ def get_rspec(api, creds, options):
                 for request in root.iterfind("./request"):
                     rspec.append(deepcopy(request))
     
+    sfa_logger().debug('get_rspec: rspec=%r'%rspec)
     rspec =  etree.tostring(rspec, xml_declaration=True, pretty_print=True)
     # cache the result
     if api.cache and not xrn: