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