Merge ~cgrabowski/maas:fix_dns_restart_when_adding_vault into maas:master

Proposed by Christian Grabowski
Status: Merged
Approved by: Christian Grabowski
Approved revision: f04821d7b35b75889c032ef401f9929f938de080
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:fix_dns_restart_when_adding_vault
Merge into: maas:master
Diff against target: 121 lines (+81/-4)
2 files modified
src/provisioningserver/dns/tests/test_zoneconfig.py (+79/-0)
src/provisioningserver/dns/zoneconfig.py (+2/-4)
Reviewer Review Type Date Requested Status
Alexsander de Souza Approve
MAAS Lander Approve
Review via email: mp+433738@code.launchpad.net

Commit message

always set serial if using nsupdate

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fix_dns_restart_when_adding_vault lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/1521/consoleText
COMMIT: d06b811558580b2e2c016525d39014570f22bc5e

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fix_dns_restart_when_adding_vault lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/1523/consoleText
COMMIT: dc58d19f9656cc61b7d4cd3328e52971b2c2bd77

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fix_dns_restart_when_adding_vault lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: f04821d7b35b75889c032ef401f9929f938de080

review: Approve
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/provisioningserver/dns/tests/test_zoneconfig.py b/src/provisioningserver/dns/tests/test_zoneconfig.py
index f97adfd..948d219 100644
--- a/src/provisioningserver/dns/tests/test_zoneconfig.py
+++ b/src/provisioningserver/dns/tests/test_zoneconfig.py
@@ -415,6 +415,56 @@ class TestDNSForwardZoneConfig(MAASTestCase):
415 stdin=expected_stdin.encode("ascii"),415 stdin=expected_stdin.encode("ascii"),
416 )416 )
417417
418 def test_dynamic_update_sets_serial_when_no_other_updates_are_present(
419 self,
420 ):
421 patch_zone_file_config_path(self)
422 domain = factory.make_string()
423 network = factory.make_ipv4_network()
424 ipv4_hostname = factory.make_name("host")
425 ipv4_ip = factory.pick_ip_in_network(network)
426 ipv6_hostname = factory.make_name("host")
427 ipv6_ip = factory.make_ipv6_address()
428 ipv6_network = factory.make_ipv6_network()
429 dynamic_range = IPRange(ipv6_network.first, ipv6_network.last)
430 ttl = random.randint(10, 300)
431 mapping = {
432 ipv4_hostname: HostnameIPMapping(None, ttl, {ipv4_ip}),
433 ipv6_hostname: HostnameIPMapping(None, ttl, {ipv6_ip}),
434 }
435 dns_zone_config = DNSForwardZoneConfig(
436 domain,
437 serial=random.randint(1, 100),
438 mapping=mapping,
439 default_ttl=ttl,
440 dynamic_ranges=[dynamic_range],
441 )
442 self.patch(dns_zone_config, "get_GENERATE_directives")
443 run_command = self.patch(actions, "run_command")
444 dns_zone_config.write_config()
445 new_dns_zone_config = DNSForwardZoneConfig(
446 domain,
447 serial=random.randint(1, 100),
448 mapping=mapping,
449 default_ttl=ttl,
450 dynamic_ranges=[dynamic_range],
451 )
452 new_dns_zone_config.write_config()
453 expected_stdin = "\n".join(
454 [
455 "server localhost",
456 f"zone {domain}",
457 f"update add {domain} {new_dns_zone_config.default_ttl} SOA {domain}. nobody.example.com. {new_dns_zone_config.serial} 600 1800 604800 {new_dns_zone_config.default_ttl}",
458 "send\n",
459 ]
460 )
461 run_command.assert_called_once_with(
462 "nsupdate",
463 "-k",
464 get_nsupdate_key_path(),
465 stdin=expected_stdin.encode("ascii"),
466 )
467
418468
419class TestDNSReverseZoneConfig(MAASTestCase):469class TestDNSReverseZoneConfig(MAASTestCase):
420 """Tests for DNSReverseZoneConfig."""470 """Tests for DNSReverseZoneConfig."""
@@ -888,6 +938,35 @@ class TestDNSReverseZoneConfig(MAASTestCase):
888 stdin=expected_stdin.encode("ascii"),938 stdin=expected_stdin.encode("ascii"),
889 )939 )
890940
941 def test_dynamic_update_sets_serial_when_no_other_updates_are_present(
942 self,
943 ):
944 patch_zone_file_config_path(self)
945 domain = factory.make_string()
946 network = IPNetwork("10.0.0.0/24")
947 zone = DNSReverseZoneConfig(
948 domain,
949 serial=random.randint(1, 100),
950 network=network,
951 )
952 run_command = self.patch(actions, "run_command")
953 zone.write_config()
954 zone.write_config()
955 expected_stdin = "\n".join(
956 [
957 "server localhost",
958 "zone 0.0.10.in-addr.arpa",
959 f"update add 0.0.10.in-addr.arpa {zone.default_ttl} SOA 0.0.10.in-addr.arpa. nobody.example.com. {zone.serial} 600 1800 604800 {zone.default_ttl}",
960 "send\n",
961 ]
962 )
963 run_command.assert_called_once_with(
964 "nsupdate",
965 "-k",
966 get_nsupdate_key_path(),
967 stdin=expected_stdin.encode("ascii"),
968 )
969
891970
892class TestDNSReverseZoneConfig_GetGenerateDirectives(MAASTestCase):971class TestDNSReverseZoneConfig_GetGenerateDirectives(MAASTestCase):
893 """Tests for `DNSReverseZoneConfig.get_GENERATE_directives()`."""972 """Tests for `DNSReverseZoneConfig.get_GENERATE_directives()`."""
diff --git a/src/provisioningserver/dns/zoneconfig.py b/src/provisioningserver/dns/zoneconfig.py
index eb28986..13dca69 100644
--- a/src/provisioningserver/dns/zoneconfig.py
+++ b/src/provisioningserver/dns/zoneconfig.py
@@ -321,8 +321,7 @@ class DNSForwardZoneConfig(DomainConfigBase):
321 )321 )
322 )322 )
323 if not self.force_config_write and self.zone_file_exists(zi):323 if not self.force_config_write and self.zone_file_exists(zi):
324 if len(self._dynamic_updates) > 0:324 self.dynamic_update(zi)
325 self.dynamic_update(zi)
326 else:325 else:
327 self.requires_reload = True326 self.requires_reload = True
328 self.write_zone_file(327 self.write_zone_file(
@@ -611,8 +610,7 @@ class DNSReverseZoneConfig(DomainConfigBase):
611 )610 )
612 )611 )
613 if not self.force_config_write and self.zone_file_exists(zi):612 if not self.force_config_write and self.zone_file_exists(zi):
614 if len(self._dynamic_updates) > 0:613 self.dynamic_update(zi)
615 self.dynamic_update(zi)
616 else:614 else:
617 self.requires_reload = True615 self.requires_reload = True
618 self.write_zone_file(616 self.write_zone_file(

Subscribers

People subscribed via source and target branches