Merge "Compare subnet length as well when deleting DHCP entry"

This commit is contained in:
Jenkins
2014-10-20 17:13:06 +00:00
committed by Gerrit Code Review
2 changed files with 11 additions and 6 deletions

View File

@@ -212,7 +212,8 @@ class MidoClient:
raise MidonetApiException( raise MidonetApiException(
msg=_("Tried to delete non-existent DHCP")) msg=_("Tried to delete non-existent DHCP"))
for dhcp in dhcp_subnets: for dhcp in dhcp_subnets:
if dhcp.get_subnet_prefix() == net_addr: if (dhcp.get_subnet_prefix() == net_addr and
dhcp.get_subnet_length() == str(net_len)):
dhcp.delete() dhcp.delete()
break break

View File

@@ -92,14 +92,18 @@ class MidoClientTestCase(testtools.TestCase):
def test_delete_dhcp(self): def test_delete_dhcp(self):
bridge = mock.Mock() bridge = mock.Mock()
subnet = mock.Mock() subnet1 = mock.Mock()
subnet.get_subnet_prefix.return_value = "10.0.0.0" subnet1.get_subnet_prefix.return_value = "10.0.0.0"
subnets = mock.MagicMock(return_value=[subnet]) subnet1.get_subnet_length.return_value = "16"
subnet2 = mock.Mock()
subnet2.get_subnet_prefix.return_value = "10.0.0.0"
subnet2.get_subnet_length.return_value = "24"
subnets = mock.MagicMock(return_value=[subnet1, subnet2])
bridge.get_dhcp_subnets.side_effect = subnets bridge.get_dhcp_subnets.side_effect = subnets
self.client.delete_dhcp(bridge, "10.0.0.0/24") self.client.delete_dhcp(bridge, "10.0.0.0/24")
bridge.assert_has_calls(mock.call.get_dhcp_subnets) bridge.assert_has_calls(mock.call.get_dhcp_subnets)
subnet.assert_has_calls([mock.call.get_subnet_prefix(), self.assertFalse(subnet1.delete.called)
mock.call.delete()]) subnet2.delete.assert_called_once_with()
def test_add_dhcp_host(self): def test_add_dhcp_host(self):