From 1039d1d47a53be0c814a03608e94a9d0e8f4405b Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 19 Apr 2025 10:48:15 -0600 Subject: sys/ns: implement automatic PTR zones --- .../increment-zone-serials.py | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'pkgs/increment-zone-serials/increment-zone-serials.py') diff --git a/pkgs/increment-zone-serials/increment-zone-serials.py b/pkgs/increment-zone-serials/increment-zone-serials.py index 2d5753a..394075a 100755 --- a/pkgs/increment-zone-serials/increment-zone-serials.py +++ b/pkgs/increment-zone-serials/increment-zone-serials.py @@ -2,18 +2,14 @@ import datetime, json, os.path, sys -base_dir = sys.argv[1] +root_dir = sys.argv[1] serial_num = lambda n: f'{today}{n:02}' -today_str = datetime.datetime.utcnow().date().strftime('%Y%m%d') -today = int(today_str) +today_str = datetime.datetime.now(datetime.UTC).date().strftime('%Y%m%d') +today = int(today_str) -paths = [] - -for zone, data in json.load(sys.stdin).items(): - expected_hash = data['expected'] - - old_serial_int = data['serial'] +def update_serial(*, zone_class, name, expected, serial): + old_serial_int = serial new_serial = serial_num(0) if old_serial_int is not None: @@ -28,17 +24,24 @@ for zone, data in json.load(sys.stdin).items(): if new_serial is None: new_serial = str(old_serial_int + 1) - path = os.path.join(base_dir, zone, 'serial.nix') - with open(os.path.join(base_dir, zone, 'serial.nix'), 'w') as serial_file: + path = os.path.join(root_dir, zone_class, name, 'serial.nix') + with open(path, 'w') as serial_file: print(f'''\ {{ config = {{ soa.serial = {new_serial}; - nullSerialHash = "{expected_hash}"; + nullSerialHash = "{expected}"; }}; }} ''', file=serial_file) - paths.append(path) + + return path + +paths = [] + +for zone_class, zones in json.load(sys.stdin).items(): + for zone in zones.values(): + paths.append(update_serial(**zone, zone_class=zone_class)) # Se imprime al final para evitar estados intermedios si algo tira excepción for path in paths: -- cgit v1.2.3