X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2FsfaImport.py;h=8859c00875cc43a395c6d89242e6dcfea331af0f;hb=89b3f9326a2612be2d9bf035f41f83636118d1fa;hp=3323080d14d39d24b108ddb1126e532fd9ec9089;hpb=a3bf61fdc8315c475c07d733aac3b49981c42825;p=sfa.git diff --git a/sfa/plc/sfaImport.py b/sfa/plc/sfaImport.py index 3323080d..8859c008 100644 --- a/sfa/plc/sfaImport.py +++ b/sfa/plc/sfaImport.py @@ -50,11 +50,11 @@ def cleanup_string(str): class sfaImport: - def __init__(self): + def __init__(self, logger=None): + self.logger = logger self.AuthHierarchy = Hierarchy() - self.TrustedRoots = TrustedRootList(Config.get_trustedroots_dir()) - self.config = Config() + self.TrustedRoots = TrustedRootList(Config.get_trustedroots_dir(self.config)) self.plc_auth = self.config.get_plc_auth() self.root_auth = self.config.SFA_REGISTRY_ROOT_AUTH self.level1_auth = self.config.SFA_REGISTRY_LEVEL1_AUTH @@ -76,6 +76,7 @@ class sfaImport: # if auth records for this hrn dont exist, create it if not AuthHierarchy.auth_exists(hrn): + trace("Import: creating top level authorites", self.logger) AuthHierarchy.create_auth(hrn) @@ -96,7 +97,7 @@ class sfaImport: if not auth_record: auth_record = GeniRecord(hrn=hrn, gid=auth_info.get_gid_object(), type="authority", pointer=-1) auth_record['authority'] = get_authority(auth_record['hrn']) - trace(" inserting authority record for " + hrn) + trace("Import: inserting authority record for " + hrn, self.logger) table.insert(auth_record) @@ -108,7 +109,7 @@ class sfaImport: if len(hrn) > 64: hrn = hrn[:64] - trace("Import: importing person " + hrn) + trace("Import: importing person " + hrn, self.logger) key_ids = [] if 'key_ids' in person and person['key_ids']: key_ids = person["key_ids"] @@ -121,7 +122,7 @@ class sfaImport: pkey = Keypair(create=True) else: # the user has no keys - trace(" person " + hrn + " does not have a PL public key") + trace(" person " + hrn + " does not have a PL public key", self.logger) # if a key is unavailable, then we still need to put something in the # user's GID. So make one up. pkey = Keypair(create=True) @@ -135,7 +136,7 @@ class sfaImport: if not existing_records: table.insert(person_record) else: - trace("Import: %s exists, updating " % hrn) + trace("Import: %s exists, updating " % hrn, self.logger) existing_record = existing_records[0] person_record['record_id'] = existing_record['record_id'] table.update(person_record) @@ -146,11 +147,11 @@ class sfaImport: slicename = cleanup_string(slicename) if not slicename: - error("Import_Slice: failed to parse slice name " + slice['name']) + error("Import_Slice: failed to parse slice name " + slice['name'], self.logger) return hrn = parent_hrn + "." + slicename - trace("Import: importing slice " + hrn) + trace("Import: importing slice " + hrn, self.logger) pkey = Keypair(create=True) slice_gid = AuthHierarchy.create_gid(hrn, create_uuid(), pkey) @@ -161,7 +162,7 @@ class sfaImport: if not existing_records: table.insert(slice_record) else: - trace("Import: %s exists, updating " % hrn) + trace("Import: %s exists, updating " % hrn, self.logger) existing_record = existing_records[0] slice_record['record_id'] = existing_record['record_id'] table.update(slice_record) @@ -172,11 +173,11 @@ class sfaImport: nodename = cleanup_string(nodename) if not nodename: - error("Import_node: failed to parse node name " + node['hostname']) + error("Import_node: failed to parse node name " + node['hostname'], self.logger) return hrn = parent_hrn + "." + nodename - trace("Import: importing node " + hrn) + trace("Import: importing node " + hrn, self.logger) # ASN.1 will have problems with hrn's longer than 64 characters if len(hrn) > 64: hrn = hrn[:64] @@ -191,7 +192,7 @@ class sfaImport: if not existing_records: table.insert(node_record) else: - trace("Import: %s exists, updating " % hrn) + trace("Import: %s exists, updating " % hrn, self.logger) existing_record = existing_records[0] node_record['record_id'] = existing_record['record_id'] table.update(node_record) @@ -210,14 +211,14 @@ class sfaImport: # internet2 nodes. This is a special operation for some vini # sites only if ".vini" in parent_hrn and parent_hrn.endswith('vini'): - if sitename.startswith("ii"): - sitename = sitename.replace("ii", "") + if sitename.startswith("i2"): + #sitename = sitename.replace("ii", "") hrn = ".".join([parent_hrn, "internet2", sitename]) elif sitename.startswith("nlr"): + #sitename = sitename.replace("nlr", "") hrn = ".".join([parent_hrn, "internet2", sitename]) - sitename = sitename.replace("nlr", "") - trace("Import_Site: importing site " + hrn) + trace("Import: importing site " + hrn, self.logger) # create the authority if not AuthHierarchy.auth_exists(hrn): @@ -232,15 +233,18 @@ class sfaImport: if not existing_records: table.insert(auth_record) else: - trace("Import: %s exists, updating " % hrn) - existing_record = existing_record[0] + trace("Import: %s exists, updating " % hrn, self.logger) + existing_record = existing_records[0] auth_record['record_id'] = existing_record['record_id'] table.update(auth_record) + return hrn + def delete_record(self, hrn, type): # delete the record table = GeniTable() record_list = table.find({'type': type, 'hrn': hrn}) for record in record_list: + trace("Import: Removing record %s %s" % (type, hrn), self.logger) table.remove(record)