avoid as much as possible accessing logger through class instances, whenever that...
[sfa.git] / sfa / methods / GetCredential.py
index 1f8c71a..9e83f45 100644 (file)
@@ -1,41 +1,38 @@
-### $Id: get_credential.py 17576 2010-04-05 20:56:15Z tmack $
-### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/get_credential.py $
-
-from sfa.trust.credential import *
-from sfa.trust.rights import *
-from sfa.util.faults import *
-from sfa.util.namespace import *
+from sfa.util.xrn import urn_to_hrn
 from sfa.util.method import Method
 from sfa.util.method import Method
-from sfa.util.parameter import Parameter, Mixed
-from sfa.util.debug import log
+from sfa.util.sfalogging import logger
+
 from sfa.trust.credential import Credential
 
 from sfa.trust.credential import Credential
 
+from sfa.storage.parameter import Parameter, Mixed
+
+
 class GetCredential(Method):
     """
     Retrive a credential for an object
 class GetCredential(Method):
     """
     Retrive a credential for an object
-    If cred == None then the behavior reverts to get_self_credential
+    If cred == None then the behavior reverts to GetSelfCredential
 
     @param hrn human readable name of object (hrn or urn)
     @param cred credential object specifying rights of the caller
     @param type type of object (user | slice | node | authority )
 
 
     @param hrn human readable name of object (hrn or urn)
     @param cred credential object specifying rights of the caller
     @param type type of object (user | slice | node | authority )
 
-    @return the string representation of a credential object  
+    @return the string representation of a credential object
     """
 
     interfaces = ['registry']
     """
 
     interfaces = ['registry']
-    
+
     accepts = [
         Mixed(Parameter(str, "Credential string"),
     accepts = [
         Mixed(Parameter(str, "Credential string"),
-              Parameter(type([str]), "List of credentials")), 
+              Parameter(type([str]), "List of credentials")),
         Parameter(str, "Human readable name (hrn or urn)"),
         Mixed(Parameter(str, "Record type"),
               Parameter(None, "Type not specified")),
         Parameter(str, "Human readable name (hrn or urn)"),
         Mixed(Parameter(str, "Record type"),
               Parameter(None, "Type not specified")),
-        ]
+    ]
 
     returns = Parameter(str, "String representation of a credential object")
 
     def call(self, creds, xrn, type):
 
     returns = Parameter(str, "String representation of a credential object")
 
     def call(self, creds, xrn, type):
-    
+
         if type:
             hrn = urn_to_hrn(xrn)[0]
         else:
         if type:
             hrn = urn_to_hrn(xrn)[0]
         else:
@@ -45,11 +42,10 @@ class GetCredential(Method):
         valid_creds = self.api.auth.checkCredentials(creds, 'getcredential')
         self.api.auth.verify_object_belongs_to_me(hrn)
 
         valid_creds = self.api.auth.checkCredentials(creds, 'getcredential')
         self.api.auth.verify_object_belongs_to_me(hrn)
 
-        #log the call
-        origin_hrn = Credential(string=valid_creds[0]).get_gid_caller().get_hrn()
-        self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name))        
-
-        manager = self.api.get_interface_manager()
-        
-        return manager.get_credential(self.api, xrn, type)
+        # log the call
+        origin_hrn = Credential(
+            string=valid_creds[0]).get_gid_caller().get_hrn()
+        logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s" %
+                    (self.api.interface, origin_hrn, hrn, self.name))
 
 
+        return self.api.manager.GetCredential(self.api, xrn, type, self.api.auth.client_gid.get_urn())