From 7ea760d5eb6b3fe94b9faa08a3d4a068fed44bc3 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 11 Jan 2026 10:18:21 +0100 Subject: [PATCH] hooks/test_ptr_records.py: introduce --- bundles/mailserver/metadata.py | 1 + hooks/test_ptr_records.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 hooks/test_ptr_records.py diff --git a/bundles/mailserver/metadata.py b/bundles/mailserver/metadata.py index bc82537..69388f4 100644 --- a/bundles/mailserver/metadata.py +++ b/bundles/mailserver/metadata.py @@ -82,6 +82,7 @@ def dns(metadata): 'dns': dns, } + @metadata_reactor.provides( 'letsencrypt/domains', ) diff --git a/hooks/test_ptr_records.py b/hooks/test_ptr_records.py new file mode 100644 index 0000000..cbccf50 --- /dev/null +++ b/hooks/test_ptr_records.py @@ -0,0 +1,18 @@ +from subprocess import check_output + + +def test_node(repo, node, **kwargs): + for node in repo.nodes_in_group('mailserver'): + domain = node.metadata.get('mailserver/hostname') + expected_ptr_record = f"{domain}." + expected_a_record = node.hostname + + # check A record + actual_a_record = check_output(['dig', '+short', 'A', domain, '@9.9.9.9'], text=True).strip() + if actual_a_record != expected_a_record: + raise AssertionError(f"A record for {expected_a_record} on node {node.name} is {actual_a_record}, expected {expected_a_record}") + + # check otr record + actual_ptr_record = check_output(['dig', '+short', '-x', expected_a_record, '@9.9.9.9'], text=True).strip() + if actual_ptr_record != expected_ptr_record: + raise AssertionError(f"PTR record for {expected_a_record} on node {node.name} is {actual_ptr_record}, expected {expected_ptr_record}")