示例#1
0
 def update(self, data, writeable):
     validate(data, self._schema)
     collection_id = data.pop('collection_id', [])
     self.update_collections(collection_id, writeable)
     meta = self.meta
     meta.update(data, safe=True)
     self.meta = meta
     db.session.add(self)
示例#2
0
 def update(self, data, writeable):
     validate(data, self._schema)
     collection_id = data.pop('collection_id', [])
     self.update_collections(collection_id, writeable)
     meta = self.meta
     meta.update(data, safe=True)
     self.meta = meta
     db.session.add(self)
示例#3
0
 def __init__(self, config):
     validate(config, 'mapping.json#')
     self.config = config
     uri = os.path.expandvars(self.config.get('database'))
     self.engine = create_engine(uri)
     self.meta = MetaData()
     self.meta.bind = self.engine
     self.nodes = [NodeMapping(self, n, c) for (n, c)
                   in config.get('nodes').items()]
     self.edges = [EdgeMapping(self, c) for c in config.get('edges', [])]
示例#4
0
 def create(cls, data, role):
     validate(data, 'alert.json#')
     alert = cls()
     alert.role_id = role.id
     q = extract_query(data.get('query'))
     alert.query = {k: q.getlist(k) for k in q.keys()}
     alert.signature = query_signature(q)
     alert.custom_label = data.get('custom_label')
     alert.update()
     return alert
示例#5
0
 def __init__(self, config):
     validate(config, 'mapping.json#')
     self.config = config
     uri = os.path.expandvars(self.config.get('database'))
     self.engine = create_engine(uri)
     self.meta = MetaData()
     self.meta.bind = self.engine
     self.nodes = [
         NodeMapping(self, n, c) for (n, c) in config.get('nodes').items()
     ]
     self.edges = [EdgeMapping(self, c) for c in config.get('edges', [])]
示例#6
0
文件: alert.py 项目: tomjie/aleph
 def create(cls, data, role):
     validate(data, 'alert.json#')
     alert = cls()
     alert.role_id = role.id
     alert.query_text = data.get('query_text')
     if alert.query_text is not None:
         alert.query_text = alert.query_text.strip()
         alert.query_text = alert.query_text or None
     alert.entity_id = data.get('entity_id') or None
     alert.custom_label = data.get('label')
     alert.update()
     return alert
示例#7
0
 def create(cls, data, role):
     validate(data, 'alert.json#')
     alert = cls()
     alert.role_id = role.id
     alert.query_text = data.get('query_text')
     if alert.query_text is not None:
         alert.query_text = alert.query_text.strip()
         alert.query_text = alert.query_text or None
     alert.entity_id = data.get('entity_id') or None
     alert.custom_label = data.get('label')
     alert.update()
     return alert
示例#8
0
文件: mapping.py 项目: rlugojr/aleph
 def __init__(self, config):
     validate(config, 'mapping.json#')
     self.config = config
     uri = os.path.expandvars(self.config.get('database'))
     self.engine = create_engine(uri)
     self.meta = MetaData()
     self.meta.bind = self.engine
     self.nodes = [NodeMapping(self, n, c) for (n, c)
                   in config.get('nodes').items()]
     self.edges = [EdgeMapping(self, c) for c in config.get('edges', [])]
     self.collection = Collection.create({
         'foreign_id': config.get('collection'),
         'label': config.get('collection'),
         'managed': True
     })
     db.session.add(self.collection)
     db.session.commit()
示例#9
0
 def schema_update(self, data, merge=False):
     """Update the object based on JSON schema properties."""
     validate(data, self._schema)
     db.session.add(self)
     for prop in self.schema_visitor.properties:
         if prop.name == 'id':
             continue
         if prop.name not in data:
             continue
         prop_data = data[prop.name]
         if prop.is_value:
             self._schema_update_value(prop, prop_data)
         elif prop.is_object and self._schema_recurse:
             self._schema_update_object(prop, prop_data)
         elif prop.is_array and self._schema_recurse:
             self._schema_update_array(prop, prop_data, merge=merge)
     if isinstance(self, DatedModel):
         self.updated_at = datetime.utcnow()
示例#10
0
文件: mapping.py 项目: tomjie/aleph
 def __init__(self, config):
     validate(config, 'mapping.json#')
     self.config = config
     uri = os.path.expandvars(self.config.get('database'))
     self.engine = create_engine(uri)
     self.meta = MetaData()
     self.meta.bind = self.engine
     self.nodes = [
         NodeMapping(self, n, c) for (n, c) in config.get('nodes').items()
     ]
     self.edges = [EdgeMapping(self, c) for c in config.get('edges', [])]
     self.collection = Collection.create({
         'foreign_id':
         config.get('collection'),
         'label':
         config.get('collection'),
         'managed':
         True
     })
     db.session.add(self.collection)
     db.session.commit()
示例#11
0
文件: entity.py 项目: 01-/aleph
 def update(self, data):
     validate(data, 'entity.json#')
     self.name = data.get('name')
     self.category = data.get('category')
     self.data = data.get('data')
     db.session.add(self)
     db.session.flush()
     selectors = set(data.get('selectors', []))
     selectors.add(self.name)
     existing = list(self.selectors)
     for sel in list(existing):
         if sel.text in selectors:
             selectors.remove(sel.text)
             existing.remove(sel)
     for sel in existing:
         db.session.delete(sel)
     for text in selectors:
         sel = Selector()
         sel.entity = self
         sel.text = text
         db.session.add(sel)
示例#12
0
文件: collection.py 项目: 01-/aleph
 def update(self, data):
     validate(data, 'collection.json#')
     self.label = data.get('label')
     self.touch()
示例#13
0
 def update(self, data):
     validate(data, self._schema)
     self.label = data.pop("label")
     self.data = {"nodes": data.pop("nodes", []), "edges": data.pop("edges", []), "view": data.pop("view", {})}
     db.session.add(self)
示例#14
0
文件: role.py 项目: 01-/aleph
 def update(self, data):
     validate(data, 'role.json#')
     self.name = data.get('name')
     self.email = data.get('email')
示例#15
0
文件: source.py 项目: 01-/aleph
 def update(self, data):
     validate(data, 'source.json#')
     self.label = data.get('label')
     if 'category' in data:
         self.category = data.get('category')