X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fserver%2Fsfa-clean-peer-records.py;h=5c133351ddaa793b38912f6fc7138cae3e6559f5;hb=3d7237fa0b5f2b4a60cb97c7fb3b6aecfd94558a;hp=8701f04b27c1f14bef7d8f79651df348fa0ec34e;hpb=32ec3acb2a0d34652e8b728f9a5e46a9089066c3;p=sfa.git diff --git a/sfa/server/sfa-clean-peer-records.py b/sfa/server/sfa-clean-peer-records.py index 8701f04b..5c133351 100644 --- a/sfa/server/sfa-clean-peer-records.py +++ b/sfa/server/sfa-clean-peer-records.py @@ -2,14 +2,17 @@ import sys import os -from sfa.util.misc import * -from sfa.util.genitable import GeniTable -from sfa.util.geniclient import GeniClient -from sfa.plc.api import GeniAPI +import traceback +from sfa.util.namespace import * +from sfa.util.table import SfaTable +from sfa.plc.api import SfaAPI from sfa.util.config import Config +from sfa.trust.certificate import Keypair from sfa.trust.hierarchy import Hierarchy from sfa.util.report import trace, error from sfa.server.registry import Registries +from sfa.util.xmlrpcprotocol import xmlrpcprotocol, ServerException +import socket def main(): config = Config() @@ -22,30 +25,34 @@ def main(): sfa_key_path = sfa_hierarchy.basedir key_file = os.path.join(sfa_key_path, "server.key") cert_file = os.path.join(sfa_key_path, "server.cert") + key = Keypair(filename=key_file) # get a connection to our local sfa registry # and a valid credential authority = config.SFA_INTERFACE_HRN url = 'http://%s:%s/' %(config.SFA_REGISTRY_HOST, config.SFA_REGISTRY_PORT) - registry = GeniClient(url, key_file, cert_file) - sfa_api = GeniAPI(key_file = key_file, cert_file = cert_file, interface='registry') + registry = xmlrpcprotocol.get_server((url, key_file, cert_file) + sfa_api = SfaAPI(key_file = key_file, cert_file = cert_file, interface='registry') credential = sfa_api.getCredential() # get peer registries registries = Registries(sfa_api) - # get local peer records - table = GeniTable() + table = SfaTable() peer_records = table.find({'~peer_authority': None}) - - # get a list of authorities contained in the peer record list for peer_record in peer_records: peer_auth = peer_record['peer_authority'] if peer_auth in registries: - records = registries[peer_auth].resolve(credential, peer_record['hrn']) - if not records: - table.remove(peer_record) - + try: + peer_record_hrn = peer_record['hrn'] + arg_list = [credential, peer_record_hrn] + records = registries[peer_auth].resolve(credential, peer_record_hrn) + except ServerException: + # an exception will be thrown if the record doenst exist + # if so remove the record from the local registry + registries[sfa_api.hrn].remove_peer_object(credential, peer_record) + except: + traceback.print_exc() if __name__ == '__main__': main()