Compare commits

...

2 commits

Author SHA1 Message Date
mwiegand
6e9610d797 wip 2021-07-14 12:06:43 +02:00
mwiegand
ac5482335d wip 2021-07-14 11:48:36 +02:00
4 changed files with 9 additions and 19 deletions

View file

@ -1,5 +1,4 @@
from ipaddress import ip_interface
hdict, hlist = repo.libs.hashable.hdict, repo.libs.hashable.hlist
defaults = {
@ -76,9 +75,9 @@ def collect_records(metadata):
for type, values in records.items():
for value in values:
zones\
.setdefault(zone, set())\
.add(
hdict({'name': name, 'type': type, 'value': value})
.setdefault(zone, [])\
.append(
{'name': name, 'type': type, 'value': value}
)
return {
@ -105,10 +104,10 @@ def ns_records(metadata):
return {
'bind': {
'zones': {
zone: {
hdict({'name': '@', 'type': 'NS', 'value': f"{nameserver}."})
zone: [
{'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()
},
},
}

View file

@ -90,10 +90,10 @@ def systemd_networkd_netdevs(metadata):
'Endpoint': config['endpoint'],
'PublicKey': config['pubkey'],
'PresharedKey': config['psk'],
'AllowedIPs': ', '.join([
'AllowedIPs': ', '.join(sorted([
str(ip_interface(repo.get_node(peer).metadata.get(f'wireguard/my_ip')).ip),
*config.get('route', []),
]), # FIXME
])), # FIXME
'PersistentKeepalive': 30,
}
})

View file

@ -1,9 +0,0 @@
import json
class hdict(dict):
def __hash__(self):
return hash(json.dumps(self, sorted=True))
class hlist(list):
def __hash__(self):
return hash(json.dumps(self, sorted=True))

View file

@ -9,7 +9,7 @@ template = '''
[${segment.split('#')[0]}]
% for option, value in sorted(options.items()):
% if isinstance(value, dict):
% for k, v in value.items():
% for k, v in sorted(value.items()):
${option}=${k}=${v}
% endfor
% elif isinstance(value, (list, set, tuple)):