From: Tony Mack Date: Mon, 5 Apr 2010 22:41:54 +0000 (+0000) Subject: attempt to retrieve peer gid within a try/except block X-Git-Tag: sfa-0.9-11~26 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=0112c1e16acc79460e9de3b4a3cc8f0d3cdcfabb;hp=ffba27b005f35add9b2022dd2d4c7b7a0c9b6615;p=sfa.git attempt to retrieve peer gid within a try/except block --- diff --git a/sfa/server/registry.py b/sfa/server/registry.py index e953ecdd..fbe0964b 100644 --- a/sfa/server/registry.py +++ b/sfa/server/registry.py @@ -89,23 +89,30 @@ class Registries(dict): """ if not new_hrns: return + + trusted_certs_dir = self.api.config.get_trustedroots_dir() for new_hrn in new_hrns: - # get path for the new gid file - trusted_certs_dir = self.api.config.get_trustedroots_dir() - gid_filename = os.path.join(trusted_certs_dir, '%s.gid' % new_hrn) - - # get gid from the registry - registry = self.get_connections(self.interfaces[new_hrn])[new_hrn] - trusted_gids = registry.get_trusted_certs() - if not trusted_gids: + try: + # get gid from the registry + registry = self.get_connections(self.interfaces[new_hrn])[new_hrn] + trusted_gids = registry.get_trusted_certs() + # default message + message = "interface: registry\tunable to retrieve and install trusted gid for %s" % new_hrn + if trusted_gids: + # the gid we want shoudl be the first one in the list, but lets + # make sure + for trusted_gid in trusted_gids: + gid = GID(string=trusted_gids[0]) + if gid.get_hrn() == new_hrn: + gid_filename = os.path.join(trusted_certs_dir, '%s.gid' % new_hrn) + gid.save_to_file(gid_filename, save_parents=True) + message = "interface: registry\tinstalled trusted gid for %s" % \ + (new_hrn) + # log the message + self.api.logger.info(message) + except: message = "interface: registry\tunable to retrieve and install trusted gid for %s" % new_hrn self.api.logger.info(message) - continue - gid = GID(string=trusted_gids[0]) - gid.save_to_file(gid_filename, save_parents=True) - message = "interface: registry\tinstalled trusted gid for %s" % \ - (new_hrn) - self.api.logger.info(message) # reload the trusted certs list self.api.auth.load_trusted_certs()