raise MidonetApiException(
msg=_("Tried to delete non-existent DHCP"))
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()
break
def test_delete_dhcp(self):
bridge = mock.Mock()
- subnet = mock.Mock()
- subnet.get_subnet_prefix.return_value = "10.0.0.0"
- subnets = mock.MagicMock(return_value=[subnet])
+ subnet1 = mock.Mock()
+ subnet1.get_subnet_prefix.return_value = "10.0.0.0"
+ 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
self.client.delete_dhcp(bridge, "10.0.0.0/24")
bridge.assert_has_calls(mock.call.get_dhcp_subnets)
- subnet.assert_has_calls([mock.call.get_subnet_prefix(),
- mock.call.delete()])
+ self.assertFalse(subnet1.delete.called)
+ subnet2.delete.assert_called_once_with()
def test_add_dhcp_host(self):