25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
from flask import Blueprint, request, jsonify, current_app
|
|
from services.combocore.ncm import get_routes, derive_eth0_cidr_gw
|
|
|
|
bp = Blueprint("cc_ncm_v1", __name__)
|
|
|
|
@bp.post("/routes")
|
|
def api_routes():
|
|
body = request.get_json(silent=True) or {}
|
|
host = body.get("host", "").strip()
|
|
if not host:
|
|
return jsonify({"ok": False, "error": "host required"}), 400
|
|
cfg = current_app.config
|
|
routes = get_routes(host, cfg["CORE_API_USER"], cfg["CORE_API_PASS"], cfg["VERIFY_SSL"], cfg["REQUEST_TIMEOUT"])
|
|
return jsonify({"ok": True, "routes": routes})
|
|
|
|
@bp.post("/oam")
|
|
def api_oam_eth0():
|
|
body = request.get_json(silent=True) or {}
|
|
host = body.get("host", "").strip()
|
|
if not host:
|
|
return jsonify({"ok": False, "error": "host required"}), 400
|
|
cfg = current_app.config
|
|
routes = get_routes(host, cfg["CORE_API_USER"], cfg["CORE_API_PASS"], cfg["VERIFY_SSL"], cfg["REQUEST_TIMEOUT"])
|
|
cidr, gw = derive_eth0_cidr_gw(routes)
|
|
return jsonify({"ok": True, "cidr": cidr, "gw": gw}) |