2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 18:19:42 +00:00

Update set_expected_keytimes for migrate case

If we are migrating keys, we should take the existing key timing
metadata to initialise the state values. These tests will only setup
keys with Publish/Activate/SyncPublish times, because the Retire and
Remove timings will still need to be adjusted to the DNSSEC policy.
This commit is contained in:
Matthijs Mekking 2025-07-28 14:12:55 +02:00
parent e6478836e7
commit 1a8cbf11fe

View File

@ -249,7 +249,9 @@ class KeyProperties:
iret = Iret(config, zsk=self.key.is_zsk(), ksk=self.key.is_ksk()) iret = Iret(config, zsk=self.key.is_zsk(), ksk=self.key.is_ksk())
self.timing["Removed"] = self.timing["Retired"] + iret self.timing["Removed"] = self.timing["Retired"] + iret
def set_expected_keytimes(self, config, offset=None, pregenerated=False): def set_expected_keytimes(
self, config, offset=None, pregenerated=False, migrate=False
):
if self.key is None: if self.key is None:
raise ValueError("KeyProperties must be attached to a Key") raise ValueError("KeyProperties must be attached to a Key")
@ -260,18 +262,24 @@ class KeyProperties:
offset = self.properties["offset"] offset = self.properties["offset"]
self.timing["Generated"] = self.key.get_timing("Created") self.timing["Generated"] = self.key.get_timing("Created")
self.timing["Published"] = self.key.get_timing("Created")
self.timing["Published"] = self.timing["Generated"]
if pregenerated: if pregenerated:
self.timing["Published"] = self.key.get_timing("Publish") self.timing["Published"] = self.key.get_timing("Publish")
self.timing["Published"] = self.timing["Published"] + offset
self.Ipub(config) if migrate:
self.timing["Published"] = self.key.get_timing("Publish")
if self.key.is_ksk():
self.timing["PublishCDS"] = self.key.get_timing("SyncPublish")
self.timing["Active"] = self.key.get_timing("Activate")
else:
self.timing["Published"] = self.timing["Published"] + offset
self.Ipub(config)
self.IpubC(config)
# Set Retired timing metadata if key has lifetime. # Set Retired timing metadata if key has lifetime.
if self.metadata["Lifetime"] != 0: if self.metadata["Lifetime"] != 0:
self.timing["Retired"] = self.timing["Active"] + self.metadata["Lifetime"] self.timing["Retired"] = self.timing["Active"] + self.metadata["Lifetime"]
self.IpubC(config)
self.Iret(config) self.Iret(config)
# Key state change times must exist, but since we cannot reliably tell # Key state change times must exist, but since we cannot reliably tell