Add app.py
This commit is contained in:
commit
67220c9031
1 changed files with 48 additions and 0 deletions
48
app.py
Normal file
48
app.py
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
import json
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
|
from jinja2 import Template
|
||||||
|
from flask import Flask, render_template_string, jsonify, url_for, redirect, render_template, request, abort
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
from modules.parse import run_bgp_curl_command, run_arp_curl_command, run_neighbors_curl_command, run_interfaces_curl_command, run_bgp_route_curl_command
|
||||||
|
|
||||||
|
from modules.bgp import parse_bgp_data, generate_bgp_json
|
||||||
|
|
||||||
|
from modules.visual_route import generate_visual_route_graph
|
||||||
|
|
||||||
|
@app.route("/ping")
|
||||||
|
def ping():
|
||||||
|
return "pong"
|
||||||
|
|
||||||
|
@app.route('/')
|
||||||
|
def visual_route_page():
|
||||||
|
return render_template("visual-route.html")
|
||||||
|
|
||||||
|
@app.route('/bgp-route/lookup', methods=['POST'])
|
||||||
|
def bgp_route_lookup():
|
||||||
|
data = request.json
|
||||||
|
ip_version = data.get('ip_version')
|
||||||
|
bgprouteprefix = data.get('bgprouteprefix')
|
||||||
|
|
||||||
|
if not ip_version or not bgprouteprefix:
|
||||||
|
return jsonify({"error": "ip_version and bgprouteprefix are required"}), 400
|
||||||
|
|
||||||
|
try:
|
||||||
|
result = run_bgp_route_curl_command(ip_version, bgprouteprefix)
|
||||||
|
return jsonify(result)
|
||||||
|
except Exception as e:
|
||||||
|
return jsonify({"error": str(e)}), 500
|
||||||
|
|
||||||
|
@app.route('/graph', methods=['POST'])
|
||||||
|
def visual_route_graph():
|
||||||
|
ip_address_str = request.json.get('ip_address')
|
||||||
|
|
||||||
|
graph_data = generate_visual_route_graph(ip_address_str)
|
||||||
|
|
||||||
|
if "error" in graph_data:
|
||||||
|
return jsonify(graph_data), 400
|
||||||
|
|
||||||
|
return jsonify(graph_data)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue