From 3f711ff6dad8952f1e12c5de4022e0e513417b8a Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Wed, 13 Apr 2022 10:44:37 +0200 Subject: [PATCH] openstack: Add update subnet DHCP helper --- .../utilities/test_zaza_utilities_openstack.py | 14 ++++++++++++++ zaza/openstack/utilities/openstack.py | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/unit_tests/utilities/test_zaza_utilities_openstack.py b/unit_tests/utilities/test_zaza_utilities_openstack.py index cc5fa68..3cd33a6 100644 --- a/unit_tests/utilities/test_zaza_utilities_openstack.py +++ b/unit_tests/utilities/test_zaza_utilities_openstack.py @@ -1500,6 +1500,20 @@ class TestOpenStackUtils(ut_utils.BaseTestCase): 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 bc04a1d..fdadcb1 100644 --- a/zaza/openstack/utilities/openstack.py +++ b/zaza/openstack/utilities/openstack.py @@ -1328,6 +1328,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.