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