bundles/powerdns: ensure primary servers are in database

This commit is contained in:
Franzi 2023-05-16 19:23:52 +02:00
parent f8416215d5
commit 6d2cf0fa24
Signed by: kunsi
GPG key ID: 12E3D2136B818350
2 changed files with 31 additions and 3 deletions

View file

@ -86,6 +86,8 @@ def get_ips_of_secondary_nameservers(metadata):
ips = set()
for rnode in repo.nodes_in_group('dns'):
if rnode.metadata.get('powerdns/is_secondary', False):
if rnode.name == node.name:
raise BundleError(f'{node.name} cannot be its own secondary')
for _, found_ips in repo.libs.tools.resolve_identifier(repo, rnode.name).items():
ips.update({str(ip) for ip in found_ips})
@ -102,11 +104,15 @@ def get_ips_of_primary_nameservers(metadata):
if not metadata.get('powerdns/is_secondary', False):
return {}
ips = set()
ips = {}
for rnode in repo.nodes_in_group('dns'):
if not rnode.metadata.get('powerdns/is_secondary', False):
if rnode.name == node.name:
raise BundleError(f'{node.name} cannot be its own secondary')
hostname = rnode.metadata.get('hostname')
ips[hostname] = set()
for _, found_ips in repo.libs.tools.resolve_identifier(repo, rnode.name).items():
ips.update({str(ip) for ip in found_ips})
ips[hostname].update({str(ip) for ip in found_ips})
return {
'powerdns': {