diff --git a/unit_tests/utilities/test_zaza_utilities_openstack.py b/unit_tests/utilities/test_zaza_utilities_openstack.py index cc5fa68b2..3cd33a608 100644 --- a/unit_tests/utilities/test_zaza_utilities_openstack.py +++ b/unit_tests/utilities/test_zaza_utilities_openstack.py @@ -1500,6 +1500,20 @@ def test_configure_charmed_openstack_on_maas(self): self.configure_networking_charms.assert_called_once_with( 'fakenetworkingdata', expect, use_juju_wait=False) + def test_update_subnet_dhcp(self): + neutron_client = mock.MagicMock() + openstack_utils.update_subnet_dhcp( + neutron_client, {'id': 'aId'}, True) + neutron_client.update_subnet.assert_called_once_with( + 'aId', + {'subnet': {'enable_dhcp': True}}) + neutron_client.reset_mock() + openstack_utils.update_subnet_dhcp( + neutron_client, {'id': 'aId'}, False) + neutron_client.update_subnet.assert_called_once_with( + 'aId', + {'subnet': {'enable_dhcp': False}}) + class TestAsyncOpenstackUtils(ut_utils.AioTestCase): diff --git a/zaza/openstack/utilities/openstack.py b/zaza/openstack/utilities/openstack.py index ef330c17e..17243ceae 100644 --- a/zaza/openstack/utilities/openstack.py +++ b/zaza/openstack/utilities/openstack.py @@ -1332,6 +1332,24 @@ def update_subnet_dns(neutron_client, subnet, dns_servers): neutron_client.update_subnet(subnet['id'], msg) +def update_subnet_dhcp(neutron_client, subnet, enable_dhcp): + """Update subnet DHCP status. + + :param neutron_client: Authenticated neutronclient + :type neutron_client: neutronclient.Client object + :param subnet: Subnet object + :type subnet: dict + :param enable_dhcp: Whether DHCP should be enabled or not + :type enable_dhcp: bool + """ + msg = { + 'subnet': { + 'enable_dhcp': enable_dhcp, + } + } + neutron_client.update_subnet(subnet['id'], msg) + + def create_provider_router(neutron_client, project_id): """Create the provider router.