summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIndrajit Raychaudhuri <irc@indrajit.com>2024-12-30 19:03:34 -0600
committerIndrajit Raychaudhuri <irc@indrajit.com>2026-07-24 12:17:23 -0500
commit65c8d1538d0fa68d4e7306aa152cdc39ba082b6b (patch)
tree4f7797b8c5ee5515cc45e20c2bbf696b8fcee92c /src
parent282e1c4d27543bf7941b10685e633056dd04b2be (diff)
downloadvyos-1x-65c8d1538d0fa68d4e7306aa152cdc39ba082b6b.tar.gz
vyos-1x-65c8d1538d0fa68d4e7306aa152cdc39ba082b6b.zip
ddclient: T6981: Move nsupdate key mapping to Python
Relocate key mapping for 'nsupdate' (rfc2136) from Jinja template to Python. This keeps the template simpler and allows for more complex dict handling in Python.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/service_dns_dynamic.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/conf_mode/service_dns_dynamic.py b/src/conf_mode/service_dns_dynamic.py
index 08ee80a6b..682daa8a2 100755
--- a/src/conf_mode/service_dns_dynamic.py
+++ b/src/conf_mode/service_dns_dynamic.py
@@ -156,6 +156,13 @@ def generate(dyndns):
if not dyndns or 'name' not in dyndns:
return None
+ # Adjust protocol specific keys
+ for name in dyndns['name']:
+ # nsupdate (RFC2136) uses:
+ # - 'password' in ddclient.conf instead of 'key' in vyos conf
+ if dyndns['name'][name]['protocol'] == 'nsupdate':
+ dyndns['name'][name]['password'] = dyndns['name'][name].pop('key')
+
render(config_file, 'dns-dynamic/ddclient.conf.j2', dyndns, permission=0o600)
render(systemd_override, 'dns-dynamic/override.conf.j2', dyndns)
return None