diff --git a/src/traffic_checker.py b/src/traffic_checker.py new file mode 100644 index 0000000..d33275e --- /dev/null +++ b/src/traffic_checker.py @@ -0,0 +1,51 @@ +import json +import os +from pathlib import Path + +import requests + + +def load_config() -> dict: + dev_config = Path(__file__).parent.parent / "config.json" + sys_config = Path("/etc/traffic-checker/config.json") + + if dev_config.exists(): + config_path = dev_config + elif sys_config.exists(): + config_path = sys_config + else: + raise FileNotFoundError( + "Configuration file config.json not found in dev path or /etc/traffic-checker/" + ) + + with open(config_path, "r", encoding="utf-8") as f: + return json.load(f) + + +def fetch_server_data(server_uuid: str) -> dict: + token = os.getenv("VIRTFUSION_TOKEN") + + if not token: + raise RuntimeError("VIRTFUSION_TOKEN environment variable is not set.") + + url = f"https://virtfusion-nat.gullo.me/api/server/{server_uuid}" + + headers = { + "Accept": "application/json", + "Authorization": f"Bearer {token}", + } + + params = {"state": "true"} + + response = requests.get(url, headers=headers, params=params, timeout=10) + response.raise_for_status() + + return response.json() + + +if __name__ == "__main__": + config = load_config() + + for server in config["servers"]: + data = fetch_server_data(server["uuid"]) + print(data)