forked from MrKalzu/traceroute_map
TEMP: Working data pipeline & rendering
This commit is contained in:
34
app/main.py
34
app/main.py
@ -1,10 +1,8 @@
|
||||
from fastapi import Request, FastAPI
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from .collector import parse_traceroute_output, store_traceroute
|
||||
from .db import ensure_table_setup
|
||||
from .db import Database, ensure_table_setup
|
||||
|
||||
from pprint import pprint as print
|
||||
|
||||
@ -14,7 +12,8 @@ ensure_table_setup()
|
||||
|
||||
# Setup web framework thingies
|
||||
app = FastAPI()
|
||||
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||
app.mount("/static", StaticFiles(directory="app/static"), name="static")
|
||||
|
||||
|
||||
@app.get("/")
|
||||
def read_root():
|
||||
@ -33,23 +32,36 @@ def read_root():
|
||||
"",
|
||||
"",
|
||||
"END OF TRANSMISSION",
|
||||
] + [None]*800
|
||||
]
|
||||
+ [None] * 800,
|
||||
}
|
||||
|
||||
|
||||
@app.post("/trace/{hostname}")
|
||||
async def create_trace(hostname: str, request: Request):
|
||||
@app.get("/trace/")
|
||||
def list_traces():
|
||||
db = Database()
|
||||
|
||||
trace = db.list_traces()
|
||||
|
||||
db.end()
|
||||
return trace
|
||||
|
||||
|
||||
@app.post("/trace/{origin}")
|
||||
async def create_trace(origin: str, request: Request):
|
||||
raw_data = await request.body()
|
||||
data = raw_data.decode("utf-8", "ignore")
|
||||
|
||||
print(f"Received data from {hostname}:")
|
||||
print(f"Received data from {origin}:")
|
||||
print(data)
|
||||
|
||||
trace = parse_traceroute_output(data, datetime.now())
|
||||
trace = parse_traceroute_output(data, origin)
|
||||
|
||||
print("Parsed data:")
|
||||
print(trace)
|
||||
|
||||
store_traceroute(hostname, trace)
|
||||
db = Database()
|
||||
db.create_trace(trace)
|
||||
db.end()
|
||||
|
||||
return {"status": "ok" }
|
||||
return {"status": "ok"}
|
||||
|
Reference in New Issue
Block a user