|
@@ -0,0 +1,55 @@
|
|
|
|
|
+#!/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("<<<p1:sep(0)>>>")
|
|
|
|
|
+ print(json.dumps(data, separators=(",", ":")))
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+if __name__ == "__main__":
|
|
|
|
|
+ main()
|