X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2FGetCredential.py;h=f7bc721a9c0c9c9605a8cf77fdbfc37596d8fc08;hb=8c36c18576dc540cfc3b43ff4a676a4993f7abca;hp=a604ea0d90f2ab1ad1dbe9d9a90b70d3820b6994;hpb=94b83a51072033cd1391fc2b120d87c3374d8042;p=sfa.git diff --git a/sfa/methods/GetCredential.py b/sfa/methods/GetCredential.py index a604ea0d..f7bc721a 100644 --- a/sfa/methods/GetCredential.py +++ b/sfa/methods/GetCredential.py @@ -1,19 +1,15 @@ -### $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.parameter import Parameter, Mixed -from sfa.util.debug import log + from sfa.trust.credential import Credential +from sfa.storage.parameter import Parameter, Mixed + + class GetCredential(Method): """ Retrive a credential for an object - If cred == Nonee 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 @@ -23,32 +19,32 @@ class GetCredential(Method): """ interfaces = ['registry'] - + 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)"), - Parameter(str, "Object type") - ] + 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): - + if type: hrn = urn_to_hrn(xrn)[0] else: hrn, type = urn_to_hrn(xrn) # check creds - valid_creds = self.api.auth.checkCredentials(creds, 'getcredential', 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() + self.api.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())