This commit is contained in:
mwiegand 2021-07-13 18:53:48 +02:00
parent b59c691b5f
commit 5a1ca9142d

View file

@ -1,3 +1,12 @@
class hdict(dict):
def __hash__(self):
return hash(tuple(sorted(self.items())))
class hlist(list):
def __hash__(self):
return hash(tuple(sorted(self)))
from ipaddress import ip_interface
@ -75,9 +84,9 @@ def collect_records(metadata):
for type, values in records.items():
for value in values:
zones\
.setdefault(zone, [])\
.append(
{'name': name, 'type': type, 'value': value}
.setdefault(zone, set())\
.add(
hdict({'name': name, 'type': type, 'value': value})
)
return {
@ -104,10 +113,10 @@ def ns_records(metadata):
return {
'bind': {
'zones': {
zone: [
{'name': '@', 'type': 'NS', 'value': f"{nameserver}."}
zone: {
hdict({'name': '@', 'type': 'NS', 'value': f"{nameserver}."})
for nameserver in nameservers
] for zone in metadata.get('bind/zones').keys()
} for zone in metadata.get('bind/zones').keys()
},
},
}