Updates
This commit is contained in:
66
named_reporter.py
Normal file
66
named_reporter.py
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from urllib.request import Request, urlopen
|
||||||
|
from urllib.error import URLError, HTTPError
|
||||||
|
|
||||||
|
|
||||||
|
def parse_args():
|
||||||
|
p = argparse.ArgumentParser(description="Report named reload/start failures to Windmill")
|
||||||
|
p.add_argument("--url", required=True)
|
||||||
|
p.add_argument("--token", required=True)
|
||||||
|
p.add_argument("--action", required=True)
|
||||||
|
p.add_argument("--hostname", required=True)
|
||||||
|
p.add_argument("--ip", required=True)
|
||||||
|
p.add_argument("--failed-domains-csv", default="")
|
||||||
|
p.add_argument("--raw", default="")
|
||||||
|
p.add_argument("--timeout", type=int, default=10)
|
||||||
|
return p.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
args = parse_args()
|
||||||
|
|
||||||
|
failed = [z for z in (args.failed_domains_csv or "").split(",") if z]
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"action": args.action,
|
||||||
|
"hostname": args.hostname,
|
||||||
|
"ip_address": args.ip,
|
||||||
|
"failed_domains": failed,
|
||||||
|
}
|
||||||
|
|
||||||
|
data = json.dumps(payload).encode("utf-8")
|
||||||
|
headers = {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"Authorization": "Bearer %s" % args.token,
|
||||||
|
}
|
||||||
|
|
||||||
|
req = Request(args.url, data=data, headers=headers)
|
||||||
|
try:
|
||||||
|
resp = urlopen(req, timeout=args.timeout)
|
||||||
|
resp.read()
|
||||||
|
return 0
|
||||||
|
except HTTPError as e:
|
||||||
|
body = ""
|
||||||
|
try:
|
||||||
|
body = e.read()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
print("WARN: windmill HTTP error: %s body=%r" % (e, body), file=sys.stderr)
|
||||||
|
return 0
|
||||||
|
except URLError as e:
|
||||||
|
print("WARN: windmill URL error: %s" % (e,), file=sys.stderr)
|
||||||
|
return 0
|
||||||
|
except Exception as e:
|
||||||
|
print("WARN: windmill report failed: %s" % (e,), file=sys.stderr)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
Reference in New Issue
Block a user