summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-10-20 17:13:06 +0000
committerGerrit Code Review <review@openstack.org>2014-10-20 17:13:06 +0000
commit2c8c01d4b22d05c8026ac57fd36c03c6c2035916 (patch)
treef0a39736ff8e7d14937eae1a2a94ae02e14b3b10
parentd7145141f5dd64d27a2f0fa5044b65c0e3e23a51 (diff)
parent648063881ebfbb54a362ef32d58263fc0f20981c (diff)
downloadneutron-2c8c01d4b22d05c8026ac57fd36c03c6c2035916.tar.gz
Merge "Compare subnet length as well when deleting DHCP entry"
-rw-r--r--neutron/plugins/midonet/midonet_lib.py3
-rw-r--r--neutron/tests/unit/midonet/test_midonet_lib.py14
2 files changed, 11 insertions, 6 deletions
diff --git a/neutron/plugins/midonet/midonet_lib.py b/neutron/plugins/midonet/midonet_lib.py
index a733eb0574..60dac24250 100644
--- a/neutron/plugins/midonet/midonet_lib.py
+++ b/neutron/plugins/midonet/midonet_lib.py
@@ -212,7 +212,8 @@ class MidoClient:
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
diff --git a/neutron/tests/unit/midonet/test_midonet_lib.py b/neutron/tests/unit/midonet/test_midonet_lib.py
index 9f456a8709..b581493ea5 100644
--- a/neutron/tests/unit/midonet/test_midonet_lib.py
+++ b/neutron/tests/unit/midonet/test_midonet_lib.py
@@ -92,14 +92,18 @@ class MidoClientTestCase(testtools.TestCase):
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):