X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fimporter%2Fplimporter.py;h=1fe64e8f18c5ab53a0e1c0d8828459fa77c3af61;hb=510763490e86632a50496f611aa3dbc1a2eae924;hp=16733fa0d02e14fd03020bfb6da7edd38055305b;hpb=67e01f3db0ff9ede48bcf8463af4afeb14b81312;p=sfa.git diff --git a/sfa/importer/plimporter.py b/sfa/importer/plimporter.py index 16733fa0..1fe64e8f 100644 --- a/sfa/importer/plimporter.py +++ b/sfa/importer/plimporter.py @@ -250,7 +250,7 @@ class PlImporter: pass node_record.stale=False - site_pis=[] + site_pis=set() # import persons for person_id in site['person_ids']: try: @@ -286,8 +286,7 @@ class PlImporter: plc_keys = keys_by_person_id.get(person['person_id'],[]) if not user_record: (pubkey,pkey) = init_person_key (person, plc_keys ) - person_gid = self.auth_hierarchy.create_gid(person_urn, create_uuid(), pkey) - person_gid.set_email(person['email']) + person_gid = self.auth_hierarchy.create_gid(person_urn, create_uuid(), pkey, email=person['email']) user_record = RegUser (hrn=person_hrn, gid=person_gid, pointer=person['person_id'], authority=get_authority(person_hrn), @@ -330,12 +329,13 @@ class PlImporter: # this is valid for all sites she is in.. # PI is coded with role_id==20 if 20 in person['role_ids']: - site_pis.append (user_record) + site_pis.add (user_record) except: self.logger.log_exc("PlImporter: failed to import person %d %s"%(person['person_id'],person['email'])) # maintain the list of PIs for a given site - site_record.reg_pis = site_pis + site_record.reg_pis = list(site_pis) + dbsession.commit() # import slices for slice_id in site['slice_ids']: @@ -361,9 +361,13 @@ class PlImporter: except: self.logger.log_exc("PlImporter: failed to import slice") else: + # update the pointer if it has changed + if slice_id != slice_record.pointer: + self.logger.info("updating record (slice) pointer") + slice_record.pointer = slice_id + dbsession.commit() # xxx update the record ... - self.logger.warning ("Slice update not yet implemented") - pass + #self.logger.warning ("Slice update not yet implemented") # record current users affiliated with the slice slice_record.reg_researchers = \ [ self.locate_by_type_pointer ('user',user_id) for user_id in slice['person_ids'] ]