966 with session.ensure_cnx_set: |
966 with session.ensure_cnx_set: |
967 # begin by inserting eid/type/source/extid into the entities table |
967 # begin by inserting eid/type/source/extid into the entities table |
968 if extid is not None: |
968 if extid is not None: |
969 assert isinstance(extid, str) |
969 assert isinstance(extid, str) |
970 extid = b64encode(extid) |
970 extid = b64encode(extid) |
971 uri = 'system' if source.copy_based_source else source.uri |
971 uri = 'system' |
972 attrs = {'type': entity.cw_etype, 'eid': entity.eid, 'extid': extid, |
972 attrs = {'type': entity.cw_etype, 'eid': entity.eid, 'extid': extid, |
973 'source': uri, 'asource': source.uri, 'mtime': datetime.utcnow()} |
973 'source': uri, 'asource': source.uri, 'mtime': datetime.utcnow()} |
974 self._handle_insert_entity_sql(session, self.sqlgen.insert('entities', attrs), attrs) |
974 self._handle_insert_entity_sql(session, self.sqlgen.insert('entities', attrs), attrs) |
975 # insert core relations: is, is_instance_of and cw_source |
975 # insert core relations: is, is_instance_of and cw_source |
976 try: |
976 try: |