X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2Fget_trusted_certs.py;h=3cfc51d721b1d7e6148c53cb7252fa3cc6ca1f41;hb=479fe75aba4509060c663c0025dac7398269f7ff;hp=7c62240da42b4651ff154585606815636c62866c;hpb=b073401948a91054f0963f9b3ca0fbbb9a5b2ecc;p=sfa.git diff --git a/sfa/methods/get_trusted_certs.py b/sfa/methods/get_trusted_certs.py index 7c62240d..3cfc51d7 100644 --- a/sfa/methods/get_trusted_certs.py +++ b/sfa/methods/get_trusted_certs.py @@ -1,31 +1,42 @@ - -### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/reset_slices.py $ - -from sfa.util.faults import * from sfa.util.method import Method -from sfa.util.parameter import Parameter, Mixed +from sfa.util.sfalogging import logger + 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 - @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, "Credential string"), + Parameter(None, "Credential not specified")) + ] + + returns = Parameter(type([str]), "List of GID strings") + + 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 + 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 - returns = Parameter(int, "1 if successful") - - def call(self, cred): # authenticate the cred self.api.auth.check(cred, 'gettrustedcerts') + gid_strings = [gid.save_to_string(save_parents=True) for + gid in self.api.auth.trusted_cert_list] - trusted_cert_strings = [gid.save_to_string(save_parents=True) for \ - gid in self.api.auth.trusted_cert_list] - - return trusted_cert_strings + return gid_strings