X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2FGetSelfCredential.py;h=fcee97ccb0e832ebbf17e35bdf9d38bf8b905bcf;hb=94b83a51072033cd1391fc2b120d87c3374d8042;hp=e0ac56927411b92ef32188b555baf60cacef22d6;hpb=8a47ee165cb347ffe148b26b85213cfabe389387;p=sfa.git diff --git a/sfa/methods/GetSelfCredential.py b/sfa/methods/GetSelfCredential.py index e0ac5692..fcee97cc 100644 --- a/sfa/methods/GetSelfCredential.py +++ b/sfa/methods/GetSelfCredential.py @@ -9,8 +9,9 @@ from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.util.record import SfaRecord from sfa.util.debug import log +from sfa.trust.certificate import Certificate -class get_self_credential(Method): +class GetSelfCredential(Method): """ Retrive a credential for an object @param cert certificate string @@ -25,13 +26,12 @@ class get_self_credential(Method): accepts = [ Parameter(str, "certificate"), Parameter(str, "Human readable name (hrn or urn)"), - Mixed(Parameter(str, "Request hash"), - Parameter(None, "Request hash not specified")) + Parameter(str, "Object type"), ] returns = Parameter(str, "String representation of a credential object") - def call(self, cert, type, xrn, origin_hrn=None): + def call(self, cert, xrn, type): """ get_self_credential a degenerate version of get_credential used by a client to get his initial credential when de doesnt have one. This is the same as @@ -53,17 +53,11 @@ class get_self_credential(Method): hrn, type = urn_to_hrn(xrn) self.api.auth.verify_object_belongs_to_me(hrn) - #log the call - if not origin_hrn: - origin_hrn = hrn - self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name)) + origin_hrn = Certificate(string=cert).get_subject() + self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name)) - # send the call to the right manager - manager_base = 'sfa.managers' - mgr_type = self.api.config.SFA_REGISTRY_TYPE - manager_module = manager_base + ".registry_manager_%s" % mgr_type - manager = __import__(manager_module, fromlist=[manager_base]) - + manager = self.api.get_interface_manager() + # authenticate the gid records = manager.resolve(self.api, xrn, type) if not records: