mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-14 14:26:04 +02:00
sys-dns-wildcards: always create apex wildcard (*.apex); use explicit_domains for CURRENT_PLAY_DOMAINS_ALL list; update README and unit tests. Ref: https://chatgpt.com/share/68c37a74-7468-800f-a612-765bbbd442de
This commit is contained in:
@@ -48,7 +48,7 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.wildcard_records = _get_filter()
|
||||
|
||||
def test_only_wildcards_no_apex_or_base(self):
|
||||
def test_only_wildcards_including_apex(self):
|
||||
apex = "example.com"
|
||||
cpda = {
|
||||
"svc-a": ["c.wiki.example.com", "a.b.example.com"],
|
||||
@@ -69,19 +69,24 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
|
||||
got = _as_set(recs)
|
||||
expected = {
|
||||
# apex wildcard always
|
||||
("A", "*", "203.0.113.10", True),
|
||||
("AAAA", "*", "2606:4700:4700::1111", True),
|
||||
|
||||
# derived parents
|
||||
("A", "*.wiki", "203.0.113.10", True),
|
||||
("AAAA", "*.wiki", "2606:4700:4700::1111", True),
|
||||
("A", "*.b", "203.0.113.10", True),
|
||||
("AAAA", "*.b", "2606:4700:4700::1111", True),
|
||||
# now included because www.a.b.example.com promotes a.b.example.com as a parent
|
||||
# www.a.b.example.com promotes a.b.example.com as a parent
|
||||
("A", "*.a.b", "203.0.113.10", True),
|
||||
("AAAA", "*.a.b", "2606:4700:4700::1111", True),
|
||||
}
|
||||
self.assertEqual(got, expected)
|
||||
|
||||
def test_min_child_depth_prevents_apex_wildcard(self):
|
||||
def test_min_child_depth_yields_only_apex(self):
|
||||
apex = "example.com"
|
||||
cpda = {"svc": ["x.example.com"]} # depth = 1
|
||||
cpda = {"svc": ["x.example.com"]} # depth = 1, below threshold
|
||||
|
||||
recs = self.wildcard_records(
|
||||
current_play_domains_all=cpda,
|
||||
@@ -93,13 +98,18 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
min_child_depth=2, # requires >= 2 → no parent derived
|
||||
ipv6_enabled=True,
|
||||
)
|
||||
self.assertEqual(recs, [])
|
||||
got = _as_set(recs)
|
||||
expected = {
|
||||
("A", "*", "198.51.100.42", False),
|
||||
("AAAA", "*", "2606:4700:4700::1111", False),
|
||||
}
|
||||
self.assertEqual(got, expected)
|
||||
|
||||
def test_ipv6_disabled_and_private_ipv6_filtered(self):
|
||||
apex = "example.com"
|
||||
cpda = {"svc": ["a.b.example.com"]}
|
||||
|
||||
# IPv6 disabled → only A record
|
||||
# IPv6 disabled → only A records (apex + parent)
|
||||
recs1 = self.wildcard_records(
|
||||
current_play_domains_all=cpda,
|
||||
apex=apex,
|
||||
@@ -110,9 +120,15 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
min_child_depth=2,
|
||||
ipv6_enabled=False,
|
||||
)
|
||||
self.assertEqual(_as_set(recs1), {("A", "*.b", "203.0.113.9", False)})
|
||||
self.assertEqual(
|
||||
_as_set(recs1),
|
||||
{
|
||||
("A", "*", "203.0.113.9", False),
|
||||
("A", "*.b", "203.0.113.9", False),
|
||||
},
|
||||
)
|
||||
|
||||
# IPv6 enabled but ULA (not global) → skip AAAA
|
||||
# IPv6 enabled but ULA (not global) → skip AAAA (apex + parent)
|
||||
recs2 = self.wildcard_records(
|
||||
current_play_domains_all=cpda,
|
||||
apex=apex,
|
||||
@@ -123,7 +139,13 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
min_child_depth=2,
|
||||
ipv6_enabled=True,
|
||||
)
|
||||
self.assertEqual(_as_set(recs2), {("A", "*.b", "203.0.113.9", False)})
|
||||
self.assertEqual(
|
||||
_as_set(recs2),
|
||||
{
|
||||
("A", "*", "203.0.113.9", False),
|
||||
("A", "*.b", "203.0.113.9", False),
|
||||
},
|
||||
)
|
||||
|
||||
def test_proxied_flag_true_is_set(self):
|
||||
recs = self.wildcard_records(
|
||||
@@ -137,7 +159,13 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
ipv6_enabled=True,
|
||||
)
|
||||
self.assertTrue(all(r.get("proxied") is True for r in recs))
|
||||
self.assertEqual(_as_set(recs), {("A", "*.b", "203.0.113.7", True)})
|
||||
self.assertEqual(
|
||||
_as_set(recs),
|
||||
{
|
||||
("A", "*", "203.0.113.7", True),
|
||||
("A", "*.b", "203.0.113.7", True),
|
||||
},
|
||||
)
|
||||
|
||||
def test_explicit_domains_override_source(self):
|
||||
cpda = {"svc": ["ignore.me.example.com", "a.b.example.com"]}
|
||||
@@ -156,6 +184,11 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
self.assertEqual(
|
||||
_as_set(recs),
|
||||
{
|
||||
# apex wildcard always
|
||||
("A", "*", "203.0.113.5", False),
|
||||
("AAAA", "*", "2606:4700:4700::1111", False),
|
||||
|
||||
# derived from explicit domain
|
||||
("A", "*.wiki", "203.0.113.5", False),
|
||||
("AAAA", "*.wiki", "2606:4700:4700::1111", False),
|
||||
},
|
||||
@@ -183,11 +216,16 @@ class TestWildcardDNS(unittest.TestCase):
|
||||
)
|
||||
got = _as_set(recs)
|
||||
expected = {
|
||||
# apex wildcard always
|
||||
("A", "*", "203.0.113.21", False),
|
||||
("AAAA", "*", "2606:4700:4700::1111", False),
|
||||
|
||||
# derived parents
|
||||
("A", "*.wiki", "203.0.113.21", False),
|
||||
("AAAA", "*.wiki", "2606:4700:4700::1111", False),
|
||||
("A", "*.b", "203.0.113.21", False),
|
||||
("AAAA", "*.b", "2606:4700:4700::1111", False),
|
||||
# now included because www.a.b.example.com promotes a.b.example.com as a parent
|
||||
# www.a.b.example.com promotes a.b.example.com as a parent
|
||||
("A", "*.a.b", "203.0.113.21", False),
|
||||
("AAAA", "*.a.b", "2606:4700:4700::1111", False),
|
||||
}
|
||||
|
Reference in New Issue
Block a user