X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2Fget_registries.py;h=a2a65a5744d7bb51d3b6176fa09f04caddd8ceed;hb=06b330f0ee047bdb107e43e82b1d7356c876bc15;hp=e928aa25e654cec35911aeab303506f5fed685b8;hpb=3f6347c4fc79310fd192090cb2036a80b84df51c;p=sfa.git diff --git a/sfa/methods/get_registries.py b/sfa/methods/get_registries.py index e928aa25..a2a65a57 100644 --- a/sfa/methods/get_registries.py +++ b/sfa/methods/get_registries.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/get_registries.py $ from types import StringTypes from sfa.util.faults import * -from sfa.util.misc import * +from sfa.util.xrn import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth @@ -13,7 +13,7 @@ class get_registries(Method): Get a list of connection information for all known registries. @param cred credential string specifying the rights of the caller - @param a Human readable name (hrn), or list of hrns or None + @param a Human readable name (hrn or urn), or list of names or None @return list of dictionaries with aggregate information. """ @@ -21,28 +21,16 @@ class get_registries(Method): accepts = [ Parameter(str, "Credential string"), - - Mixed(Parameter(str, "Human readable name (hrn)"), - Parameter(None, "hrn not specified")) + Mixed(Parameter(str, "Human readable name (hrn or urn)"), + Parameter(None, "hrn not specified")) ] returns = [Parameter(dict, "Registry interface information")] - def call(self, cred, hrn = None): - + def call(self, cred, xrn = None): + hrn, type = urn_to_hrn(xrn) self.api.auth.check(cred, 'list') - registries = Registries(self.api) - hrn_list = [] + registries = Registries(self.api).interfaces.values() if hrn: - if isinstance(hrn, StringTypes): - hrn_list = [hrn] - elif isinstance(hrn, list): - hrn_list = hrn - - if not hrn_list: - interfaces = registries.interfaces - else: - interfaces = [interface for interface in registries.interfaces if interface['hrn'] in hrn_list] - - return interfaces - return registries.interfaces + registries = [reg for reg in registries if reg['hrn'] == hrn] + return registries