diff options
author | Daniil Baturin <daniil@vyos.io> | 2025-01-06 14:16:16 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-06 14:16:16 +0000 |
commit | 53cb3e5cb9b0c88a5c83753bfadb5087b4aeb2b1 (patch) | |
tree | 63ffa08ada9f42a6bbed038e31dc67875a9d7258 | |
parent | 5ae3f05d50f386cad33e7011ca9712e925ac7fa5 (diff) | |
parent | dbf42ed4a657ec0cf4b954a8113921c130c118ce (diff) | |
download | vyos-1x-53cb3e5cb9b0c88a5c83753bfadb5087b4aeb2b1.tar.gz vyos-1x-53cb3e5cb9b0c88a5c83753bfadb5087b4aeb2b1.zip |
Merge pull request #4276 from indrajitr/ddclient-process-2025-01-04
ddclient: T5791: Keep ddclient.service in foreground
-rw-r--r-- | data/templates/dns-dynamic/ddclient.conf.j2 | 1 | ||||
-rw-r--r-- | data/templates/dns-dynamic/override.conf.j2 | 5 | ||||
-rwxr-xr-x | smoketest/scripts/cli/test_service_dns_dynamic.py | 16 |
3 files changed, 13 insertions, 9 deletions
diff --git a/data/templates/dns-dynamic/ddclient.conf.j2 b/data/templates/dns-dynamic/ddclient.conf.j2 index 5538ea56c..23aad4cb8 100644 --- a/data/templates/dns-dynamic/ddclient.conf.j2 +++ b/data/templates/dns-dynamic/ddclient.conf.j2 @@ -24,7 +24,6 @@ if{{ ipv }}={{ address }}, \ daemon={{ interval }} syslog=yes ssl=yes -pid={{ config_file | replace('.conf', '.pid') }} cache={{ config_file | replace('.conf', '.cache') }} {# ddclient default (web=dyndns) doesn't support ssl and results in process lockup #} web=googledomains diff --git a/data/templates/dns-dynamic/override.conf.j2 b/data/templates/dns-dynamic/override.conf.j2 index 4a6851cef..c0edd8f05 100644 --- a/data/templates/dns-dynamic/override.conf.j2 +++ b/data/templates/dns-dynamic/override.conf.j2 @@ -1,10 +1,11 @@ {% set vrf_command = 'ip vrf exec ' ~ vrf ~ ' ' if vrf is vyos_defined else '' %} [Unit] ConditionPathExists={{ config_file }} +Wants= After=vyos-router.service [Service] -PIDFile={{ config_file | replace('.conf', '.pid') }} EnvironmentFile= ExecStart= -ExecStart={{ vrf_command }}/usr/bin/ddclient -file {{ config_file }} +ExecStart={{ vrf_command }}/usr/bin/ddclient --file {{ config_file }} --foreground +Restart=always diff --git a/smoketest/scripts/cli/test_service_dns_dynamic.py b/smoketest/scripts/cli/test_service_dns_dynamic.py index e9fb4bf10..9fbc931de 100755 --- a/smoketest/scripts/cli/test_service_dns_dynamic.py +++ b/smoketest/scripts/cli/test_service_dns_dynamic.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2019-2024 VyOS maintainers and contributors +# Copyright (C) 2019-2025 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as @@ -38,9 +38,13 @@ ttl = '300' interface = 'eth0' class TestServiceDDNS(VyOSUnitTestSHIM.TestCase): - def setUp(self): - # Always start with a clean CLI instance - self.cli_delete(base_path) + @classmethod + def setUpClass(cls): + super(TestServiceDDNS, cls).setUpClass() + + # ensure we can also run this test on a live system - so lets clean + # out the current configuration :) + cls.cli_delete(cls, base_path) def tearDown(self): # Check for running process @@ -336,8 +340,8 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase): # Check for process in VRF systemd_override = cmd(f'cat {DDCLIENT_SYSTEMD_UNIT}') - self.assertIn(f'ExecStart=ip vrf exec {vrf_name} /usr/bin/ddclient -file {DDCLIENT_CONF}', - systemd_override) + self.assertIn(f'ExecStart=ip vrf exec {vrf_name} /usr/bin/ddclient ' \ + f'--file {DDCLIENT_CONF} --foreground', systemd_override) # Check for process in VRF proc = cmd(f'ip vrf pids {vrf_name}') |