22
22
from vyos .configsession import ConfigSessionError
23
23
from vyos .utils .process import cmd
24
24
from vyos .utils .process import process_named_running
25
+ from vyos .xml_ref import default_value
25
26
26
27
DDCLIENT_SYSTEMD_UNIT = '/run/systemd/system/ddclient.service.d/override.conf'
27
28
DDCLIENT_CONF = '/run/ddclient/ddclient.conf'
28
29
DDCLIENT_PNAME = 'ddclient'
29
30
30
31
base_path = ['service' , 'dns' , 'dynamic' ]
31
32
name_path = base_path + ['name' ]
33
+ default_interval = default_value (base_path + ['interval' ])
32
34
server = 'ddns.vyos.io'
33
35
hostname = 'test.ddns.vyos.io'
34
36
zone = 'vyos.io'
@@ -95,12 +97,14 @@ def test_01_dyndns_service_standard(self):
95
97
96
98
# Check the generating config parameters
97
99
ddclient_conf = cmd (f'sudo cat { DDCLIENT_CONF } ' )
98
- # default value 300 seconds
99
- self .assertIn (f'daemon=300' , ddclient_conf )
100
100
self .assertIn (f'usev4=ifv4' , ddclient_conf )
101
101
self .assertIn (f'ifv4={ interface } ' , ddclient_conf )
102
102
self .assertIn (f'password=\' { password } \' ' , ddclient_conf )
103
103
104
+ # Check default interval of 300 seconds
105
+ systemd_override = cmd (f'cat { DDCLIENT_SYSTEMD_UNIT } ' )
106
+ self .assertIn (f'--daemon { default_interval } ' , systemd_override )
107
+
104
108
for opt in details .keys ():
105
109
if opt == 'username' :
106
110
login = details [opt ]
@@ -140,7 +144,6 @@ def test_02_dyndns_service_ipv6(self):
140
144
141
145
# Check the generating config parameters
142
146
ddclient_conf = cmd (f'sudo cat { DDCLIENT_CONF } ' )
143
- self .assertIn (f'daemon={ interval } ' , ddclient_conf )
144
147
self .assertIn (f'usev6=ifv6' , ddclient_conf )
145
148
self .assertIn (f'ifv6={ interface } ' , ddclient_conf )
146
149
self .assertIn (f'protocol={ proto } ' , ddclient_conf )
@@ -150,6 +153,10 @@ def test_02_dyndns_service_ipv6(self):
150
153
self .assertIn (f'min-interval={ wait_time } ' , ddclient_conf )
151
154
self .assertIn (f'max-interval={ expiry_time_good } ' , ddclient_conf )
152
155
156
+ # default value 300 seconds
157
+ systemd_override = cmd (f'cat { DDCLIENT_SYSTEMD_UNIT } ' )
158
+ self .assertIn (f'--daemon { interval } ' , systemd_override )
159
+
153
160
# IPv4+IPv6 dual DDNS service configuration
154
161
def test_03_dyndns_service_dual_stack (self ):
155
162
services = {'cloudflare' : {'protocol' : 'cloudflare' , 'zone' : zone },
@@ -341,7 +348,8 @@ def test_08_dyndns_vrf(self):
341
348
# Check for process in VRF
342
349
systemd_override = cmd (f'cat { DDCLIENT_SYSTEMD_UNIT } ' )
343
350
self .assertIn (f'ExecStart=ip vrf exec { vrf_name } /usr/bin/ddclient ' \
344
- f'--file { DDCLIENT_CONF } --foreground' , systemd_override )
351
+ f'--file { DDCLIENT_CONF } --cache { DDCLIENT_CONF .replace ("conf" , "cache" )} ' \
352
+ f'--foreground --daemon { default_interval } ' , systemd_override )
345
353
346
354
# Check for process in VRF
347
355
proc = cmd (f'ip vrf pids { vrf_name } ' )
0 commit comments