mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 10:19:09 +00: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