From: Sandrine Avakian Date: Fri, 13 Jan 2012 09:51:57 +0000 (+0100) Subject: Debugging federation functions on senslab/senslab2. X-Git-Tag: sfa-2.1-24~3^2~239 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=6827e5e650eacd05e45a350736e4698c18d08db3 Debugging federation functions on senslab/senslab2. --- diff --git a/sfa/managers/registry_manager.py b/sfa/managers/registry_manager.py index 1c66e532..8a3ed20c 100644 --- a/sfa/managers/registry_manager.py +++ b/sfa/managers/registry_manager.py @@ -30,7 +30,8 @@ class RegistryManager: peers = dict ( [ (hrn,interface.get_url()) for (hrn,interface) in api.registries.iteritems() if hrn != api.hrn]) xrn=Xrn(api.hrn) - return version_core({'interface':'registry', + return version_core({'interface':'registry', + 'sfa': 2, 'hrn':xrn.get_hrn(), 'urn':xrn.get_urn(), 'peers':peers}) diff --git a/sfa/server/sfa-start.py b/sfa/server/sfa-start.py index caf953b3..59de8854 100755 --- a/sfa/server/sfa-start.py +++ b/sfa/server/sfa-start.py @@ -72,6 +72,7 @@ def install_peer_certs(server_key_file, server_cert_file): # There should be a gid file in /etc/sfa/trusted_roots for every # peer registry found in in the registries.xml config file. If there # are any missing gids, request a new one from the peer registry. + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs server_key_file %s server_cert_file %s"%(server_key_file,server_cert_file) api = SfaApi(key_file = server_key_file, cert_file = server_cert_file) registries = Registries() aggregates = Aggregates() @@ -84,9 +85,9 @@ def install_peer_certs(server_key_file, server_cert_file): peer_gids = [] if not new_hrns: return - + print>>sys.stderr," \r\n \r\n \t=============================================== install_peer_certs interfaces %s api.config.SFA_INTERFACE_HRN %s new_hrns %s" %( interfaces,api.config.SFA_INTERFACE_HRN,new_hrns) trusted_certs_dir = api.config.get_trustedroots_dir() - for new_hrn in new_hrns: + for new_hrn in new_hrns: if not new_hrn: continue # the gid for this interface should already be installed if new_hrn == api.config.SFA_INTERFACE_HRN: continue @@ -95,25 +96,33 @@ def install_peer_certs(server_key_file, server_cert_file): url = interfaces[new_hrn].get_url() interface = interfaces[new_hrn].server_proxy(server_key_file, server_cert_file, timeout=30) # skip non sfa aggregates + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs IIIinterface %s url %s" %(interface,url) server_version = api.get_cached_server_version(interface) + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs server_version %s \r\n \r\rn \t\t =============================================== server_version['sfa'] %s, " %(server_version, server_version['sfa']) if 'sfa' not in server_version: logger.info("get_trusted_certs: skipping non sfa aggregate: %s" % new_hrn) continue trusted_gids = interface.get_trusted_certs() - if trusted_gids: + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs TRUSTED_GIDS %s " %(trusted_gids) + if trusted_gids and not isinstance(trusted_gids,list): # the gid we want should be the first one in the list, # but lets make sure - for trusted_gid in trusted_gids: + trusted_gids = [trusted_gids] + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs TRUSTED_GIDS %s " %(trusted_gids) + for trusted_gid in trusted_gids: + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs trusted_gids%s " %(trusted_gid) # default message message = "interface: %s\t" % (api.interface) message += "unable to install trusted gid for %s" % \ - (new_hrn) - gid = GID(string=trusted_gids[0]) + (new_hrn) + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs message %s " %(message) + gid = GID(string=trusted_gid['value'][0]) + print>>sys.stderr, " \r\n \r\n \t=============================================== install_peer_certs gid %s " %(gid) peer_gids.append(gid) 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) + #gid.save_to_file(gid_filename, save_parents=True) message = "installed trusted cert for %s" % new_hrn # log the message api.logger.info(message) @@ -149,6 +158,7 @@ def update_cert_records(gids): # TODO: store urn in the db so we do this in 1 query for gid in gids: hrn, type = gid.get_hrn(), gid.get_type() + print>>sys.stderr, " \r\n \r\n update_cert_records hrn,%s type %s"%(hrn, type) record = table.find({'hrn': hrn, 'type': type, 'pointer': -1}) if not record: record = { @@ -157,7 +167,8 @@ def update_cert_records(gids): 'gid': gid.save_to_string(save_parents=True), } record = SfaRecord(dict=record) - table.insert(record) + print>>sys.stderr, " \r\n \r\rn record %s "%(record) + #table.insert(record) def main(): # Generate command line parser @@ -184,8 +195,8 @@ def main(): hierarchy = Hierarchy() auth_info = hierarchy.get_interface_auth_info() server_key_file = auth_info.get_privkey_filename() - server_cert_file = auth_info.get_gid_filename() - + server_cert_file = auth_info.get_gid_filename() + print>>sys.stderr, " \r\n \t\t\t\t\t SFA-START MAIN auth_info %s server_key_file %s server_cert_file %s "%(auth_info, server_key_file,server_cert_file) # ensure interface cert is present in trusted roots dir trusted_roots = TrustedRoots(config.get_trustedroots_dir()) trusted_roots.add_gid(GID(filename=server_cert_file))