116 lines
No EOL
4.1 KiB
Python
116 lines
No EOL
4.1 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)
|
|
|
|
def run_bgp_neighbor_detail_curl_command(ip_version, neighbor_ip):
|
|
path_ip_version = "ipv4" if ip_version == "ipv4" else "ipv6"
|
|
data_json = {
|
|
"op": "show",
|
|
"path": ["bgp", "vrf", "bgp", path_ip_version, "neighbors", neighbor_ip]
|
|
}
|
|
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_bfd_peers_curl_command():
|
|
curl_command = [
|
|
"curl", "-k", "--location", "--request", "POST", f"{VYOS_API_URL}/show",
|
|
"--form", "data={\"op\": \"show\", \"path\": [\"bfd\", \"peers\"]}",
|
|
"--form", f"key={VYOS_API_KEY}"
|
|
]
|
|
response = subprocess.check_output(curl_command, text=True)
|
|
return json.loads(response)
|
|
|
|
def run_bfd_peer_detail_curl_command(peer_ip):
|
|
data_json = {
|
|
"op": "show",
|
|
"path": ["bfd", "peer", peer_ip]
|
|
}
|
|
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) |