#!/usr/bin/env python3 import json from findzone import * import sys import subprocess record = sys.argv[1].strip() ip = sys.argv[2].strip() apihost = str(os.environ.get('PDNS_PRIMARY_SSH')).split("@")[1] apischeme = str(os.environ.get('PDNS_API_SCHEME')) if os.environ.get('PDNS_API_SCHEME') else "http" apiport = int(str(os.environ.get('PDNS_API_PORT'))) if os.environ.get('PDNS_API_PORT') else 8081 zone = findzone(record) host = record.replace(zone, '').rstrip(".") reverseip_array = ip.split(".") reverserecord = f"{reverseip_array[3]}.{reverseip_array[2]}.{reverseip_array[1]}.{reverseip_array[0]}.in-addr.arpa" reversezone = findzone(reverserecord) reversehost = reverserecord.replace(reversezone, '').rstrip(".") if not zone: print(f"[ERROR] no suitable zone found for {record}") exit(1) if not reversezone: print(f"[ERROR] no suitable reverse zone found for {reverserecord}") exit(1) if zone == record: host = "@" request_body_a = { "rrsets": [ { "changetype": "DELETE", "type": "A", "name": f"{record}." } ] } request_body_ptr = { "rrsets": [ { "changetype": "DELETE", "type": "PTR", "name": f"{reverserecord}." } ] } print(f"+ curl -X PATCH --data '{json.dumps(request_body_a)}' -H 'X-API-Key: *****' {apischeme}://{apihost}:{apiport}/api/v1/servers/localhost/zones/{zone}. -s") subprocess.check_output(["curl", "-X", "PATCH", "--data", json.dumps(request_body_a), "-H", f'X-API-Key: {str(os.environ.get("PDNS_APIKEY"))}', f"{apischeme}://{apihost}:{apiport}/api/v1/servers/localhost/zones/{zone}.", "-s" ]) print(f"+ curl -X PATCH --data '{json.dumps(request_body_ptr)}' -H 'X-API-Key: *****' {apischeme}://{apihost}:{apiport}/api/v1/servers/localhost/zones/{reversezone}. -s") subprocess.check_output(["curl", "-X", "PATCH", "--data", json.dumps(request_body_ptr), "-H", f'X-API-Key: {str(os.environ.get("PDNS_APIKEY"))}', f"{apischeme}://{apihost}:{apiport}/api/v1/servers/localhost/zones/{reversezone}.", "-s" ])