1
0

agent_p1 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env python3
  2. import json
  3. import sys
  4. from urllib.error import HTTPError, URLError
  5. from urllib.request import urlopen
  6. API_PATH = "/api/v1/data"
  7. TIMEOUT = 10
  8. def main():
  9. if len(sys.argv) != 2:
  10. print("Usage: agent_p1 IP_OR_FQDN", file=sys.stderr)
  11. sys.exit(1)
  12. address = sys.argv[1]
  13. url = f"http://{address}{API_PATH}"
  14. try:
  15. with urlopen(url, timeout=TIMEOUT) as response:
  16. data = json.load(response)
  17. except HTTPError as exc:
  18. print(
  19. f"P1 API HTTP error: {exc.code} {exc.reason}",
  20. file=sys.stderr,
  21. )
  22. sys.exit(1)
  23. except URLError as exc:
  24. print(
  25. f"P1 API connection error: {exc.reason}",
  26. file=sys.stderr,
  27. )
  28. sys.exit(1)
  29. except TimeoutError:
  30. print("P1 API request timed out", file=sys.stderr)
  31. sys.exit(1)
  32. except json.JSONDecodeError as exc:
  33. print(
  34. f"P1 API returned invalid JSON: {exc}",
  35. file=sys.stderr,
  36. )
  37. sys.exit(1)
  38. print("<<<p1:sep(0)>>>")
  39. print(json.dumps(data, separators=(",", ":")))
  40. if __name__ == "__main__":
  41. main()