#!/usr/bin/env python3 import json import sys from urllib.error import HTTPError, URLError from urllib.request import urlopen API_PATH = "/api/v1/data" TIMEOUT = 10 def main(): if len(sys.argv) != 2: print("Usage: agent_p1 IP_OR_FQDN", file=sys.stderr) sys.exit(1) address = sys.argv[1] url = f"http://{address}{API_PATH}" try: with urlopen(url, timeout=TIMEOUT) as response: data = json.load(response) except HTTPError as exc: print( f"P1 API HTTP error: {exc.code} {exc.reason}", file=sys.stderr, ) sys.exit(1) except URLError as exc: print( f"P1 API connection error: {exc.reason}", file=sys.stderr, ) sys.exit(1) except TimeoutError: print("P1 API request timed out", file=sys.stderr) sys.exit(1) except json.JSONDecodeError as exc: print( f"P1 API returned invalid JSON: {exc}", file=sys.stderr, ) sys.exit(1) print("<<>>") print(json.dumps(data, separators=(",", ":"))) if __name__ == "__main__": main()