diff options
| author | Daniil Baturin <daniil@vyos.io> | 2026-06-18 15:23:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-18 15:23:47 +0100 |
| commit | d3986571522e36f0fcf233e30e9589d4f239cf51 (patch) | |
| tree | 97be12cfd23b2060c1484870e790a625bd3c4e8b /smoketest/scripts/cli | |
| parent | 5566e3392db808839dd93a035b21b6f13a551da5 (diff) | |
| parent | b82e6f45df1b892b00f90ba64cb078160d030ae6 (diff) | |
| download | vyos-1x-d3986571522e36f0fcf233e30e9589d4f239cf51.tar.gz vyos-1x-d3986571522e36f0fcf233e30e9589d4f239cf51.zip | |
Merge pull request #5256 from natali-rs1985/T8524
dhcp-server: T8524: Validate DDNS key-name references defined tsig-key
Diffstat (limited to 'smoketest/scripts/cli')
| -rwxr-xr-x | smoketest/scripts/cli/test_service_dhcp-server.py | 80 |
1 files changed, 47 insertions, 33 deletions
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py index a4def234c..4a1e5ff64 100755 --- a/smoketest/scripts/cli/test_service_dhcp-server.py +++ b/smoketest/scripts/cli/test_service_dhcp-server.py @@ -1356,16 +1356,6 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase): 'SXQncyBXZWRuZXNkYXkgbWFoIGR1ZGVzIQ==', ] ) - self.cli_set(ddns + ['tsig-key', 'reverse-0-168-192', 'algorithm', 'sha256']) - self.cli_set( - ddns - + [ - 'tsig-key', - 'reverse-0-168-192', - 'secret', - 'VGhhbmsgR29kIGl0J3MgRnJpZGF5IQ==', - ] - ) self.cli_set( ddns + [ @@ -1413,6 +1403,31 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase): '1053', ] ) + + shared = base_path + ['shared-network-name', shared_net_name] + + self.cli_set(shared + ['dynamic-dns-update', 'send-updates', 'enable']) + self.cli_set(shared + ['dynamic-dns-update', 'conflict-resolution', 'enable']) + self.cli_set(shared + ['dynamic-dns-update', 'ttl-percent', '75']) + + pool = shared + ['subnet', subnet] + + self.cli_set(pool + ['subnet-id', '1']) + + self.cli_set(pool + ['range', '0', 'start', range_0_start]) + self.cli_set(pool + ['range', '0', 'stop', range_0_stop]) + + self.cli_set(pool + ['dynamic-dns-update', 'send-updates', 'enable']) + self.cli_set(pool + ['dynamic-dns-update', 'generated-prefix', 'myfunnyprefix']) + self.cli_set(pool + ['dynamic-dns-update', 'qualifying-suffix', 'suffix.lan']) + self.cli_set(pool + ['dynamic-dns-update', 'hostname-char-set', 'xXyYzZ']) + self.cli_set( + pool + ['dynamic-dns-update', 'hostname-char-replacement', '_xXx_'] + ) + + self.cli_commit() + + # DNS server without an IP address must be rejected self.cli_set( ddns + [ @@ -1420,10 +1435,14 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase): '0.168.192.in-addr.arpa', 'dns-server', '2', - 'address', - '100.100.0.1', + 'port', + '1153', ] ) + with self.assertRaises(ConfigSessionError): + self.cli_commit() + + # Fix missing address — commit must now succeed self.cli_set( ddns + [ @@ -1431,10 +1450,13 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase): '0.168.192.in-addr.arpa', 'dns-server', '2', - 'port', - '1153', + 'address', + '100.100.0.1', ] ) + self.cli_commit() + + # key-name referencing a non-existent tsig-key must be rejected self.cli_set( ddns + [ @@ -1444,28 +1466,20 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase): 'reverse-0-168-192', ] ) + with self.assertRaises(ConfigSessionError): + self.cli_commit() - shared = base_path + ['shared-network-name', shared_net_name] - - self.cli_set(shared + ['dynamic-dns-update', 'send-updates', 'enable']) - self.cli_set(shared + ['dynamic-dns-update', 'conflict-resolution', 'enable']) - self.cli_set(shared + ['dynamic-dns-update', 'ttl-percent', '75']) - - pool = shared + ['subnet', subnet] - - self.cli_set(pool + ['subnet-id', '1']) - - self.cli_set(pool + ['range', '0', 'start', range_0_start]) - self.cli_set(pool + ['range', '0', 'stop', range_0_stop]) - - self.cli_set(pool + ['dynamic-dns-update', 'send-updates', 'enable']) - self.cli_set(pool + ['dynamic-dns-update', 'generated-prefix', 'myfunnyprefix']) - self.cli_set(pool + ['dynamic-dns-update', 'qualifying-suffix', 'suffix.lan']) - self.cli_set(pool + ['dynamic-dns-update', 'hostname-char-set', 'xXyYzZ']) + # Define the missing tsig-key — commit must now succeed + self.cli_set(ddns + ['tsig-key', 'reverse-0-168-192', 'algorithm', 'sha256']) self.cli_set( - pool + ['dynamic-dns-update', 'hostname-char-replacement', '_xXx_'] + ddns + + [ + 'tsig-key', + 'reverse-0-168-192', + 'secret', + 'VGhhbmsgR29kIGl0J3MgRnJpZGF5IQ==', + ] ) - self.cli_commit() config = read_file(KEA4_CONF) |
