5
0
mirror of https://github.com/cwinfo/yggdrasil-map synced 2024-11-09 16:00:27 +00:00

log graph insertions

This commit is contained in:
Michał Zieliński 2015-11-21 13:03:19 +01:00
parent 22052a3840
commit 2beed33600
4 changed files with 20 additions and 14 deletions

View File

@ -19,8 +19,6 @@ class NodeDB:
self.con.commit()
self.con.close()
def insert_node(self, node):
now = int(time.time())
self.cur.execute('''
@ -31,7 +29,7 @@ class NodeDB:
node.ip, node.label, node.version, now, now,
node.label, node.version, now))
def insert_edge(self, edge, uploaded_by):
def insert_edge(self, edge, uploaded_by):
now = int(time.time())
self.cur.execute('''
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,
now))
def insert_graph(self, nodes, edges, uploaded_by):
def insert_graph(self, nodes, edges, uploaded_by):
for n in nodes.itervalues():
self.insert_node(n)

View File

@ -2,26 +2,34 @@ import json
from database import NodeDB
from graph import Node, Edge
import traceback
import time
def insert_graph_data(config, data, mail, ip):
def insert_graph_data(config, data, mail, ip, version):
try:
graph_data = json.loads(data)
graph_data = json.loads(data)
except ValueError:
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()
edges = []
try:
for n in graph_data['nodes']:
try:
try:
node = Node(n['ip'], version=n['version'])
nodes[n['ip']] = node
except Exception:
pass
for e in graph_data['edges']:
try:
try:
edge = Edge(nodes[e['a']], nodes[e['b']])
edges.append(edge)
except Exception:
@ -40,7 +48,7 @@ def insert_graph_data(config, data, mail, ip):
with NodeDB(config) as db:
db.insert_graph(nodes, edges, uploaded_by)
except Exception:
traceback.print_exc()
traceback.print_exc()
return 'Database failure'
return None

View File

@ -1,8 +1,6 @@
import pygraphviz as pgv
import time
import json
import collections
import math
import networkx as nx
from networkx.algorithms import centrality

View File

@ -31,9 +31,11 @@ def page_about():
def page_sendGraph():
print "Receiving graph from %s" % (request.remote_addr)
data = request.form['data']
mail = request.form.get('mail', 'none')
ret = insert_graph_data(ip=get_ip(), config=app.config, data=data, mail=mail)
data = request.form['data']
mail = request.form.get('mail', 'none')
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:
return 'OK'
else: