mirror of
https://github.com/cwinfo/yggdrasil-map
synced 2024-11-09 23:00:26 +00:00
log graph insertions
This commit is contained in:
parent
22052a3840
commit
2beed33600
@ -19,8 +19,6 @@ class NodeDB:
|
|||||||
self.con.commit()
|
self.con.commit()
|
||||||
self.con.close()
|
self.con.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def insert_node(self, node):
|
def insert_node(self, node):
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
self.cur.execute('''
|
self.cur.execute('''
|
||||||
@ -31,7 +29,7 @@ class NodeDB:
|
|||||||
node.ip, node.label, node.version, now, now,
|
node.ip, node.label, node.version, now, now,
|
||||||
node.label, node.version, now))
|
node.label, node.version, now))
|
||||||
|
|
||||||
def insert_edge(self, edge, uploaded_by):
|
def insert_edge(self, edge, uploaded_by):
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
self.cur.execute('''
|
self.cur.execute('''
|
||||||
INSERT INTO edges (a, b, first_seen, last_seen, uploaded_by)
|
INSERT INTO edges (a, b, first_seen, last_seen, uploaded_by)
|
||||||
@ -41,7 +39,7 @@ class NodeDB:
|
|||||||
edge.a.ip, edge.b.ip, now, now, uploaded_by,
|
edge.a.ip, edge.b.ip, now, now, uploaded_by,
|
||||||
now))
|
now))
|
||||||
|
|
||||||
def insert_graph(self, nodes, edges, uploaded_by):
|
def insert_graph(self, nodes, edges, uploaded_by):
|
||||||
for n in nodes.itervalues():
|
for n in nodes.itervalues():
|
||||||
self.insert_node(n)
|
self.insert_node(n)
|
||||||
|
|
||||||
|
@ -2,26 +2,34 @@ import json
|
|||||||
from database import NodeDB
|
from database import NodeDB
|
||||||
from graph import Node, Edge
|
from graph import Node, Edge
|
||||||
import traceback
|
import traceback
|
||||||
|
import time
|
||||||
|
|
||||||
def insert_graph_data(config, data, mail, ip):
|
def insert_graph_data(config, data, mail, ip, version):
|
||||||
try:
|
try:
|
||||||
graph_data = json.loads(data)
|
graph_data = json.loads(data)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return 'Invalid JSON'
|
return 'Invalid JSON'
|
||||||
|
|
||||||
|
log = '[%s] version: %d, mail: %r, nodes: %d, edges: %d' % (
|
||||||
|
time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
|
version, mail, len(graph_data['nodes']), len(graph_data['edges']))
|
||||||
|
|
||||||
|
with open(config['LOG'], 'a') as f:
|
||||||
|
f.write(log + '\n')
|
||||||
|
|
||||||
nodes = dict()
|
nodes = dict()
|
||||||
edges = []
|
edges = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for n in graph_data['nodes']:
|
for n in graph_data['nodes']:
|
||||||
try:
|
try:
|
||||||
node = Node(n['ip'], version=n['version'])
|
node = Node(n['ip'], version=n['version'])
|
||||||
nodes[n['ip']] = node
|
nodes[n['ip']] = node
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
for e in graph_data['edges']:
|
for e in graph_data['edges']:
|
||||||
try:
|
try:
|
||||||
edge = Edge(nodes[e['a']], nodes[e['b']])
|
edge = Edge(nodes[e['a']], nodes[e['b']])
|
||||||
edges.append(edge)
|
edges.append(edge)
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -40,7 +48,7 @@ def insert_graph_data(config, data, mail, ip):
|
|||||||
with NodeDB(config) as db:
|
with NodeDB(config) as db:
|
||||||
db.insert_graph(nodes, edges, uploaded_by)
|
db.insert_graph(nodes, edges, uploaded_by)
|
||||||
except Exception:
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return 'Database failure'
|
return 'Database failure'
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
import pygraphviz as pgv
|
import pygraphviz as pgv
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
import collections
|
|
||||||
import math
|
|
||||||
import networkx as nx
|
import networkx as nx
|
||||||
from networkx.algorithms import centrality
|
from networkx.algorithms import centrality
|
||||||
|
|
||||||
|
@ -31,9 +31,11 @@ def page_about():
|
|||||||
def page_sendGraph():
|
def page_sendGraph():
|
||||||
print "Receiving graph from %s" % (request.remote_addr)
|
print "Receiving graph from %s" % (request.remote_addr)
|
||||||
|
|
||||||
data = request.form['data']
|
data = request.form['data']
|
||||||
mail = request.form.get('mail', 'none')
|
mail = request.form.get('mail', 'none')
|
||||||
ret = insert_graph_data(ip=get_ip(), config=app.config, data=data, mail=mail)
|
version = int(request.form.get('version', '1'))
|
||||||
|
ret = insert_graph_data(ip=get_ip(), config=app.config, data=data, mail=mail, version=version)
|
||||||
|
|
||||||
if ret == None:
|
if ret == None:
|
||||||
return 'OK'
|
return 'OK'
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user