X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2Fget_trusted_certs.py;h=7a4e1c549c6e725310db9d22839cbffa2eeee10c;hb=cf630d87d633f3861e3ac8a50433fa29ca46a74e;hp=2a80560e66965e8821b6543c93132a7e6b8f54fc;hpb=b2edd2a7777e09caa467fc9769a1d7efdb6a0ded;p=sfa.git diff --git a/sfa/methods/get_trusted_certs.py b/sfa/methods/get_trusted_certs.py index 2a80560e..7a4e1c54 100644 --- a/sfa/methods/get_trusted_certs.py +++ b/sfa/methods/get_trusted_certs.py @@ -1,38 +1,40 @@ - -### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/reset_slices.py $ - -from sfa.util.faults import * -from sfa.util.misc import * from sfa.util.method import Method -from sfa.util.parameter import Parameter, Mixed + from sfa.trust.auth import Auth from sfa.trust.credential import Credential +from sfa.storage.parameter import Parameter, Mixed + class get_trusted_certs(Method): """ @param cred credential string specifying the rights of the caller - @param request_hash hash of the request - @return 1 is successful, faults otherwise + @return list of gid strings """ - interfaces = ['registry'] + interfaces = ['registry', 'aggregate', 'slicemgr'] accepts = [ - Parameter(str, "Credential string"), - Mixed(Parameter(str, "Request hash"), - Parameter(None, "Request hash not specified")) + Mixed(Parameter(str, "Credential string"), + Parameter(None, "Credential not specified")) ] - returns = Parameter(int, "1 if successful") + returns = Parameter(type([str]), "List of GID strings") - def call(self, cred, request_hash=None): + def call(self, cred = None): + # If cred is not specified just return the gid for this interface. + # This is true when when a peer is attempting to initiate federation + # with this interface + self.api.logger.debug("get_trusted_certs: %r"%cred) + if not cred: + gid_strings = [] + for gid in self.api.auth.trusted_cert_list: + if gid.get_hrn() == self.api.config.SFA_INTERFACE_HRN: + gid_strings.append(gid.save_to_string(save_parents=True)) + return gid_strings + # authenticate the cred - client_gid = Credential(string=cred).get_gid_caller() - client_gid_str = client_gid.save_to_string(save_parents=True) - self.api.auth.authenticateGid(client_gid_str, [cred], request_hash) self.api.auth.check(cred, 'gettrustedcerts') - - trusted_cert_strings = [gid.save_to_string(save_parents=True) for \ + gid_strings = [gid.save_to_string(save_parents=True) for \ gid in self.api.auth.trusted_cert_list] - return trusted_cert_strings + return gid_strings