monkey/monkey_island/cc/resources/netmap.py

34 lines
1.1 KiB
Python
Raw Normal View History

2017-08-25 22:47:08 +08:00
import flask_restful
from cc.services.edge import EdgeService
2017-08-30 23:14:24 +08:00
from cc.services.node import NodeService
2017-08-25 22:47:08 +08:00
from cc.database import mongo
__author__ = 'Barak'
class NetMap(flask_restful.Resource):
def get(self, **kw):
2017-08-30 23:14:24 +08:00
monkeys = [NodeService.monkey_to_net_node(x) for x in mongo.db.monkey.find({})]
nodes = [NodeService.node_to_net_node(x) for x in mongo.db.node.find({})]
2017-08-25 22:47:08 +08:00
edges = [self.edge_to_net_edge(x) for x in mongo.db.edge.find({})]
monkey_island = []
if NodeService.get_monkey_island_monkey() is None:
monkey_island = [NodeService.get_monkey_island_pseudo_net_node()]
# TODO: implement when monkey exists on island
edges += EdgeService.get_monkey_island_pseudo_edges()
2017-08-25 22:47:08 +08:00
return \
{
"nodes": monkeys + nodes + monkey_island,
2017-08-25 22:47:08 +08:00
"edges": edges
}
def edge_to_net_edge(self, edge):
return \
{
"id": edge["_id"],
"from": edge["from"],
"to": edge["to"]
}