X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=geni%2Fmethods%2Flist.py;h=81c5e081f2e674c5976c1d9e3ff6aeb67444b101;hb=f0774b4de5b54a53ea3abb5ab07d7951ee55a7b2;hp=fe61f12378a6d1bd7736842e1162fbca0fe779f4;hpb=32caee770d1e36653c9580e4adaf58a96df7c23d;p=sfa.git diff --git a/geni/methods/list.py b/geni/methods/list.py index fe61f123..81c5e081 100644 --- a/geni/methods/list.py +++ b/geni/methods/list.py @@ -27,18 +27,18 @@ class list(Method): def call(self, cred, hrn): self.api.auth.check(cred, 'list') - # is this a foreign authority - if not hrn.startswith(self.api.hrn): - registries = Registries(self.api) + try: + if not self.api.auth.hierarchy.auth_exists(hrn): + raise MissingAuthority(hrn) + table = self.api.auth.get_auth_table(hrn) + records = table.list() + except MissingAuthority: + # is this a foreign authority + registries = Registries(self.api) credential = self.api.getCredential() for registry in registries: - if hrn.startswith(registry): + if hrn.startswith(registry) and registry not in [self.api.hrn]: records = registries[registry].list(credential, hrn) - return records - - if not self.api.auth.hierarchy.auth_exists(hrn): - raise MissingAuthority(hrn) - table = self.api.auth.get_auth_table(hrn) - records = table.list() + return records return records