server/repository.py
changeset 10662 10942ed172de
parent 10609 e2d8e81bfe68
child 10663 54b8a1f249fb
equal deleted inserted replaced
10661:e6eb0c7c2e98 10662:10942ed172de
   569 
   569 
   570         This is a public method, not requiring a session id.
   570         This is a public method, not requiring a session id.
   571         """
   571         """
   572         sources = {}
   572         sources = {}
   573         # remove sensitive information
   573         # remove sensitive information
   574         for uri, source in self.sources_by_uri.iteritems():
   574         for uri, source in self.sources_by_uri.items():
   575             sources[uri] = source.public_config
   575             sources[uri] = source.public_config
   576         return sources
   576         return sources
   577 
   577 
   578     def properties(self):
   578     def properties(self):
   579         """Return a result set containing system wide properties.
   579         """Return a result set containing system wide properties.
  1037             try:
  1037             try:
  1038                 data_by_etype[etype].append(entity)
  1038                 data_by_etype[etype].append(entity)
  1039             except KeyError:
  1039             except KeyError:
  1040                 data_by_etype[etype] = [entity]
  1040                 data_by_etype[etype] = [entity]
  1041         source = self.system_source
  1041         source = self.system_source
  1042         for etype, entities in data_by_etype.iteritems():
  1042         for etype, entities in data_by_etype.items():
  1043             if server.DEBUG & server.DBG_REPO:
  1043             if server.DEBUG & server.DBG_REPO:
  1044                 print('DELETE entities', etype, [entity.eid for entity in entities])
  1044                 print('DELETE entities', etype, [entity.eid for entity in entities])
  1045             self.hm.call_hooks('before_delete_entity', cnx, entities=entities)
  1045             self.hm.call_hooks('before_delete_entity', cnx, entities=entities)
  1046             self._delete_cascade_multi(cnx, entities)
  1046             self._delete_cascade_multi(cnx, entities)
  1047             source.delete_entities(cnx, entities)
  1047             source.delete_entities(cnx, entities)
  1061         source = self.system_source
  1061         source = self.system_source
  1062         relations_by_rtype = {}
  1062         relations_by_rtype = {}
  1063         subjects_by_types = {}
  1063         subjects_by_types = {}
  1064         objects_by_types = {}
  1064         objects_by_types = {}
  1065         activintegrity = cnx.is_hook_category_activated('activeintegrity')
  1065         activintegrity = cnx.is_hook_category_activated('activeintegrity')
  1066         for rtype, eids_subj_obj in relations.iteritems():
  1066         for rtype, eids_subj_obj in relations.items():
  1067             if server.DEBUG & server.DBG_REPO:
  1067             if server.DEBUG & server.DBG_REPO:
  1068                 for subjeid, objeid in eids_subj_obj:
  1068                 for subjeid, objeid in eids_subj_obj:
  1069                     print('ADD relation', subjeid, rtype, objeid)
  1069                     print('ADD relation', subjeid, rtype, objeid)
  1070             for subjeid, objeid in eids_subj_obj:
  1070             for subjeid, objeid in eids_subj_obj:
  1071                 if rtype in relations_by_rtype:
  1071                 if rtype in relations_by_rtype:
  1099                     if objeid in objects:
  1099                     if objeid in objects:
  1100                         del relations_by_rtype[rtype][objects[objeid]]
  1100                         del relations_by_rtype[rtype][objects[objeid]]
  1101                         objects[objeid] = len(relations_by_rtype[rtype])
  1101                         objects[objeid] = len(relations_by_rtype[rtype])
  1102                         continue
  1102                         continue
  1103                     objects[objeid] = len(relations_by_rtype[rtype])
  1103                     objects[objeid] = len(relations_by_rtype[rtype])
  1104         for rtype, source_relations in relations_by_rtype.iteritems():
  1104         for rtype, source_relations in relations_by_rtype.items():
  1105             self.hm.call_hooks('before_add_relation', cnx,
  1105             self.hm.call_hooks('before_add_relation', cnx,
  1106                                rtype=rtype, eids_from_to=source_relations)
  1106                                rtype=rtype, eids_from_to=source_relations)
  1107         for rtype, source_relations in relations_by_rtype.iteritems():
  1107         for rtype, source_relations in relations_by_rtype.items():
  1108             source.add_relations(cnx, rtype, source_relations)
  1108             source.add_relations(cnx, rtype, source_relations)
  1109             rschema = self.schema.rschema(rtype)
  1109             rschema = self.schema.rschema(rtype)
  1110             for subjeid, objeid in source_relations:
  1110             for subjeid, objeid in source_relations:
  1111                 cnx.update_rel_cache_add(subjeid, rtype, objeid, rschema.symmetric)
  1111                 cnx.update_rel_cache_add(subjeid, rtype, objeid, rschema.symmetric)
  1112         for rtype, source_relations in relations_by_rtype.iteritems():
  1112         for rtype, source_relations in relations_by_rtype.items():
  1113             self.hm.call_hooks('after_add_relation', cnx,
  1113             self.hm.call_hooks('after_add_relation', cnx,
  1114                                rtype=rtype, eids_from_to=source_relations)
  1114                                rtype=rtype, eids_from_to=source_relations)
  1115 
  1115 
  1116     def glob_delete_relation(self, cnx, subject, rtype, object):
  1116     def glob_delete_relation(self, cnx, subject, rtype, object):
  1117         """delete a relation from the repository"""
  1117         """delete a relation from the repository"""