mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-02-03 18:49:28 -05:00
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
|
|
'''Test for slave zone refresh when loading.'''
|
|
|
|
from dnstest.test import Test
|
|
from dnstest.utils import *
|
|
|
|
t = Test()
|
|
|
|
master = t.server("knot")
|
|
slave = t.server("knot")
|
|
master.disable_notify = True
|
|
|
|
zone_del = t.zone_rnd(1, dnssec=False)
|
|
zone_upd = t.zone_rnd(1, dnssec=False)
|
|
zones = zone_del + zone_upd
|
|
t.link(zones, master, slave)
|
|
|
|
# Decrease the zone refresh timer.
|
|
master.zones[zone_del[0].name].zfile.update_soa(refresh=4)
|
|
|
|
t.start()
|
|
|
|
serial_del_init = master.zone_wait(zone_del)
|
|
serial_upd_init = master.zone_wait(zone_upd)
|
|
slave.zones_wait(zones)
|
|
|
|
slave.stop()
|
|
|
|
# Update a zonefile on the master.
|
|
master.update_zonefile(zone_upd, random=True)
|
|
master.reload()
|
|
|
|
# Remove a zonefile on the slave.
|
|
slave.clean(zone=zone_del, timers=False)
|
|
|
|
slave.start()
|
|
|
|
# Check for planned zone transfer if zone file deleted.
|
|
slave.zone_wait(zone_del, serial=serial_del_init, equal=True, greater=False)
|
|
|
|
# Check for untouched zone if retransfer already scheduled.
|
|
serial_upd = slave.zone_wait(zone_upd)
|
|
master.zone_wait(zone_upd, serial_upd, equal=False, greater=True)
|
|
|
|
t.end()
|