Router-tools/modules/parse.py

80 lines
No EOL
2.8 KiB
Python

import subprocess
import json
import os
from dotenv import load_dotenv
load_dotenv()
VYOS_API_URL = os.getenv("VYOS_API_URL")
VYOS_API_KEY = os.getenv("VYOS_API_KEY")
def run_bgp_curl_command():
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", "data={\"op\": \"show\", \"path\": [\"bgp\", \"vrf\", \"bgp\", \"summ\"]}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)
def run_arp_curl_command():
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", "data={\"op\": \"show\", \"path\": [\"arp\"]}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)
def run_neighbors_curl_command():
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", "data={\"op\": \"show\", \"path\": [\"ipv6\", \"neighbors\"]}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)
def run_interfaces_curl_command():
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", "data={\"op\": \"show\", \"path\": [\"interfaces\"]}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)
def run_bgp_route_curl_command(ip_version, bgprouteprefix):
data_json = {
"op": "show",
"path": ["bgp", "vrf", "bgp", ip_version, bgprouteprefix]
}
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", f"data={json.dumps(data_json)}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)
def run_rpki_cache_connection_curl_command():
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", "data={\"op\": \"show\", \"path\": [\"rpki\", \"cache-connection\"]}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)
def run_rpki_lookup_curl_command(lookup_type, query):
data_json = {
"op": "show",
"path": ["rpki", lookup_type, query]
}
curl_command = [
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
"--form", f"data={json.dumps(data_json)}",
"--form", f"key={VYOS_API_KEY}"
]
response = subprocess.check_output(curl_command, text=True)
return json.loads(response)