mirror of
https://github.com/thatmattlove/hyperglass.git
synced 2026-01-17 00:38:06 +00:00
remove legacy ripestat api
This commit is contained in:
parent
5f4d5049e0
commit
a902dc720d
2 changed files with 16 additions and 81 deletions
18
hyperglass/external/__init__.py
vendored
18
hyperglass/external/__init__.py
vendored
|
|
@ -1,5 +1,19 @@
|
|||
"""Functions & handlers for external data."""
|
||||
|
||||
# Local
|
||||
from .ripestat import RIPEStat # noqa: F401
|
||||
from .webhooks import Webhook # noqa: F401
|
||||
from .rpki import rpki_state
|
||||
from .slack import SlackHook
|
||||
from .generic import BaseExternal
|
||||
from .msteams import MSTeams
|
||||
from .bgptools import network_info, network_info_sync
|
||||
from .webhooks import Webhook
|
||||
|
||||
__all__ = (
|
||||
"BaseExternal",
|
||||
"MSTeams",
|
||||
"network_info_sync",
|
||||
"network_info",
|
||||
"rpki_state",
|
||||
"SlackHook",
|
||||
"Webhook",
|
||||
)
|
||||
|
|
|
|||
79
hyperglass/external/ripestat.py
vendored
79
hyperglass/external/ripestat.py
vendored
|
|
@ -1,79 +0,0 @@
|
|||
"""Session handler for RIPEStat Data API."""
|
||||
|
||||
# Standard Library
|
||||
from ipaddress import ip_address, ip_network
|
||||
|
||||
# Project
|
||||
from hyperglass.log import log
|
||||
from hyperglass.external._base import BaseExternal
|
||||
|
||||
|
||||
class RIPEStat(BaseExternal, name="RIPEStat"):
|
||||
"""RIPEStat session handler."""
|
||||
|
||||
def __init__(self):
|
||||
"""Initialize external base class with RIPEStat connection details."""
|
||||
|
||||
super().__init__(
|
||||
base_url="https://stat.ripe.net", uri_prefix="/data", uri_suffix="data.json"
|
||||
)
|
||||
|
||||
def network_info_sync(self, resource, serialize=False):
|
||||
"""Get network info via RIPE's Network Info API endpoint (synchronously).
|
||||
|
||||
See: https://stat.ripe.net/docs/data_api#network-info
|
||||
"""
|
||||
try:
|
||||
valid_ip = ip_address(resource)
|
||||
|
||||
if not valid_ip.is_global:
|
||||
log.debug("IP {ip} is not a global address", ip=str(valid_ip))
|
||||
return {"prefix": None, "asn": None}
|
||||
|
||||
except ValueError:
|
||||
log.debug("'{resource}' is not a valid IP address", resource=resource)
|
||||
return {"prefix": None, "asn": None}
|
||||
|
||||
raw = self._get(endpoint="network-info", params={"resource": valid_ip})
|
||||
|
||||
data = {
|
||||
"asns": raw["data"]["asns"],
|
||||
"prefix": ip_network(raw["data"]["prefix"]),
|
||||
}
|
||||
|
||||
if serialize:
|
||||
data["prefix"] = str(data["prefix"])
|
||||
data["asns"] = data["asns"][0]
|
||||
|
||||
log.debug("Collected network info from RIPEState: {i}", i=str(data))
|
||||
return data
|
||||
|
||||
async def network_info(self, resource, serialize=False):
|
||||
"""Get network info via RIPE's Network Info API endpoint.
|
||||
|
||||
See: https://stat.ripe.net/docs/data_api#network-info
|
||||
"""
|
||||
try:
|
||||
valid_ip = ip_address(resource)
|
||||
|
||||
if not valid_ip.is_global:
|
||||
log.debug("IP {ip} is not a global address", ip=str(valid_ip))
|
||||
return {"prefix": None, "asn": None}
|
||||
|
||||
except ValueError:
|
||||
log.debug("'{resource}' is not a valid IP address", resource=resource)
|
||||
return {"prefix": None, "asn": None}
|
||||
|
||||
raw = await self._aget(endpoint="network-info", params={"resource": valid_ip})
|
||||
|
||||
data = {
|
||||
"asns": raw["data"]["asns"],
|
||||
"prefix": ip_network(raw["data"]["prefix"]),
|
||||
}
|
||||
|
||||
if serialize:
|
||||
data["prefix"] = str(data["prefix"])
|
||||
data["asns"] = data["asns"][0]
|
||||
|
||||
log.debug("Collected network info from RIPEState: {i}", i=str(data))
|
||||
return data
|
||||
Loading…
Add table
Reference in a new issue