diff options
| author | Indrajit Raychaudhuri <irc@indrajit.com> | 2023-12-17 21:52:53 -0600 | 
|---|---|---|
| committer | Indrajit Raychaudhuri <irc@indrajit.com> | 2023-12-21 22:58:09 -0600 | 
| commit | 8ed44ecef860601ff82e4c5102fd11e88fe040c5 (patch) | |
| tree | 3d1abb6a55a751bc9b8ae1d45bc12b9640ff88bf /smoketest/scripts/cli | |
| parent | 94d245949d103f8fb3384ee14bb2a0e2f69c14db (diff) | |
| download | vyos-1x-8ed44ecef860601ff82e4c5102fd11e88fe040c5.tar.gz vyos-1x-8ed44ecef860601ff82e4c5102fd11e88fe040c5.zip  | |
dhcp: T3316: Update smoketest for hostname, DUID, MAC in reservation
Also, have the smoketest start with a clean CLI instance.
Diffstat (limited to 'smoketest/scripts/cli')
| -rwxr-xr-x | smoketest/scripts/cli/test_service_dhcp-server.py | 19 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_dhcpv6-server.py | 17 | 
2 files changed, 25 insertions, 11 deletions
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py index 9f6e05ff3..bf0c09965 100755 --- a/smoketest/scripts/cli/test_service_dhcp-server.py +++ b/smoketest/scripts/cli/test_service_dhcp-server.py @@ -22,13 +22,10 @@ from json import loads  from base_vyostest_shim import VyOSUnitTestSHIM  from vyos.configsession import ConfigSessionError -from vyos.utils.dict import dict_search_recursive  from vyos.utils.process import process_named_running  from vyos.utils.file import read_file -from vyos.template import address_from_cidr  from vyos.template import inc_ip  from vyos.template import dec_ip -from vyos.template import netmask_from_cidr  PROCESS_NAME = 'kea-dhcp4'  CTRL_PROCESS_NAME = 'kea-ctrl-agent' @@ -45,6 +42,8 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):      @classmethod      def setUpClass(cls):          super(TestServiceDHCPServer, cls).setUpClass() +       # Clear out current configuration to allow running this test on a live system +        cls.cli_delete(cls, base_path)          cidr_mask = subnet.split('/')[-1]          cls.cli_set(cls, ['interfaces', 'dummy', 'dum8765', 'address', f'{router}/{cidr_mask}']) @@ -300,10 +299,16 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):          client_base = 10          for client in ['client1', 'client2', 'client3']:              mac = '00:50:00:00:00:{}'.format(client_base) -            self.cli_set(pool + ['static-mapping', client, 'mac-address', mac]) +            self.cli_set(pool + ['static-mapping', client, 'mac', mac])              self.cli_set(pool + ['static-mapping', client, 'ip-address', inc_ip(subnet, client_base)])              client_base += 1 +        # cannot have both mac-address and duid set +        with self.assertRaises(ConfigSessionError): +            self.cli_set(pool + ['static-mapping', 'client1', 'duid', '00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:11']) +            self.cli_commit() +        self.cli_delete(pool + ['static-mapping', 'client1', 'duid']) +          # commit changes          self.cli_commit() @@ -337,7 +342,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):              self.verify_config_object(                      obj,                      ['Dhcp4', 'shared-networks', 0, 'subnet4', 0, 'reservations'], -                    {'hw-address': mac, 'ip-address': ip}) +                    {'hostname': client, 'hw-address': mac, 'ip-address': ip})              client_base += 1 @@ -373,7 +378,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):              client_base = 60              for client in ['client1', 'client2', 'client3', 'client4']:                  mac = '02:50:00:00:00:{}'.format(client_base) -                self.cli_set(pool + ['static-mapping', client, 'mac-address', mac]) +                self.cli_set(pool + ['static-mapping', client, 'mac', mac])                  self.cli_set(pool + ['static-mapping', client, 'ip-address', inc_ip(subnet, client_base)])                  client_base += 1 @@ -429,7 +434,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):                  self.verify_config_object(                          obj,                          ['Dhcp4', 'shared-networks', int(network), 'subnet4', 0, 'reservations'], -                        {'hw-address': mac, 'ip-address': ip}) +                        {'hostname': client, 'hw-address': mac, 'ip-address': ip})                  client_base += 1 diff --git a/smoketest/scripts/cli/test_service_dhcpv6-server.py b/smoketest/scripts/cli/test_service_dhcpv6-server.py index 175a67537..f163cc69a 100755 --- a/smoketest/scripts/cli/test_service_dhcpv6-server.py +++ b/smoketest/scripts/cli/test_service_dhcpv6-server.py @@ -41,6 +41,9 @@ class TestServiceDHCPv6Server(VyOSUnitTestSHIM.TestCase):      @classmethod      def setUpClass(cls):          super(TestServiceDHCPv6Server, cls).setUpClass() +        # Clear out current configuration to allow running this test on a live system +        cls.cli_delete(cls, base_path) +          cls.cli_set(cls, ['interfaces', 'ethernet', interface, 'address', interface_addr])      @classmethod @@ -122,12 +125,18 @@ class TestServiceDHCPv6Server(VyOSUnitTestSHIM.TestCase):          client_base = 1          for client in ['client1', 'client2', 'client3']: -            cid = '00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:{}'.format(client_base) -            self.cli_set(pool + ['static-mapping', client, 'identifier', cid]) +            duid = f'00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:{client_base:02}' +            self.cli_set(pool + ['static-mapping', client, 'duid', duid])              self.cli_set(pool + ['static-mapping', client, 'ipv6-address', inc_ip(subnet, client_base)])              self.cli_set(pool + ['static-mapping', client, 'ipv6-prefix', inc_ip(subnet, client_base << 64) + '/64'])              client_base += 1 +        # cannot have both mac-address and duid set +        with self.assertRaises(ConfigSessionError): +            self.cli_set(pool + ['static-mapping', 'client1', 'mac', '00:50:00:00:00:11']) +            self.cli_commit() +        self.cli_delete(pool + ['static-mapping', 'client1', 'mac']) +          # commit changes          self.cli_commit() @@ -182,14 +191,14 @@ class TestServiceDHCPv6Server(VyOSUnitTestSHIM.TestCase):          client_base = 1          for client in ['client1', 'client2', 'client3']: -            cid = '00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:{}'.format(client_base) +            duid = f'00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:{client_base:02}'              ip = inc_ip(subnet, client_base)              prefix = inc_ip(subnet, client_base << 64) + '/64'              self.verify_config_object(                      obj,                      ['Dhcp6', 'shared-networks', 0, 'subnet6', 0, 'reservations'], -                    {'duid': cid, 'ip-addresses': [ip], 'prefixes': [prefix]}) +                    {'hostname': client, 'duid': duid, 'ip-addresses': [ip], 'prefixes': [prefix]})              client_base += 1  | 
