From 03277a80d573161abd0d1cb81ec647b53e140063 Mon Sep 17 00:00:00 2001 From: Liping Mao Date: Wed, 4 Jun 2014 15:41:44 +0800 Subject: [PATCH] Allowed address pair: Removing check for overlap with fixed ips Some of the overlap check has been removed in the following patch: https://review.openstack.org/#/c/94508/ But the patch did not remove all the overlap check. I remove the rest part. Change-Id: I575ec54c0b3d6dc31ef80819d4258c6d162b4cfd Closes-Bug: #1326007 --- neutron/db/allowedaddresspairs_db.py | 5 ----- neutron/extensions/allowedaddresspairs.py | 4 ---- .../unit/test_extension_allowedaddresspairs.py | 16 ++++++++++++++++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/neutron/db/allowedaddresspairs_db.py b/neutron/db/allowedaddresspairs_db.py index 7fdde0e52..b648c8c47 100644 --- a/neutron/db/allowedaddresspairs_db.py +++ b/neutron/db/allowedaddresspairs_db.py @@ -48,11 +48,6 @@ class AllowedAddressPairsMixin(object): # use port.mac_address if no mac address in address pair if 'mac_address' not in address_pair: address_pair['mac_address'] = port['mac_address'] - for fixed_ip in port['fixed_ips']: - if ((fixed_ip['ip_address'] == address_pair['ip_address']) - and (port['mac_address'] == - address_pair['mac_address'])): - raise addr_pair.AddressPairMatchesPortFixedIPAndMac() db_pair = AllowedAddressPair( port_id=port['id'], mac_address=address_pair['mac_address'], diff --git a/neutron/extensions/allowedaddresspairs.py b/neutron/extensions/allowedaddresspairs.py index 96512f327..a9328aaa4 100644 --- a/neutron/extensions/allowedaddresspairs.py +++ b/neutron/extensions/allowedaddresspairs.py @@ -32,10 +32,6 @@ class DuplicateAddressPairInRequest(nexception.InvalidInput): "mac_address %(mac_address)s ip_address %(ip_address)s.") -class AddressPairMatchesPortFixedIPAndMac(nexception.InvalidInput): - message = _("Port's Fixed IP and Mac Address match an address pair entry.") - - def _validate_allowed_address_pairs(address_pairs, valid_values=None): unique_check = {} for address_pair in address_pairs: diff --git a/neutron/tests/unit/test_extension_allowedaddresspairs.py b/neutron/tests/unit/test_extension_allowedaddresspairs.py index 850ebc43a..28dcd91b1 100644 --- a/neutron/tests/unit/test_extension_allowedaddresspairs.py +++ b/neutron/tests/unit/test_extension_allowedaddresspairs.py @@ -159,6 +159,22 @@ class TestAllowedAddressPairs(AllowedAddressPairDBTestCase): 'ip_address': '10.0.0.1'}] self._create_port_with_address_pairs(address_pairs, 400) + def test_create_overlap_with_fixed_ip(self): + address_pairs = [{'mac_address': '00:00:00:00:00:01', + 'ip_address': '10.0.0.2'}] + with self.network() as network: + with self.subnet(network=network, cidr='10.0.0.0/24') as subnet: + fixed_ips = [{'subnet_id': subnet['subnet']['id'], + 'ip_address': '10.0.0.2'}] + res = self._create_port(self.fmt, network['network']['id'], + arg_list=(addr_pair.ADDRESS_PAIRS, + 'fixed_ips'), + allowed_address_pairs=address_pairs, + fixed_ips=fixed_ips) + self.assertEqual(res.status_int, 201) + port = self.deserialize(self.fmt, res) + self._delete('ports', port['port']['id']) + def test_create_port_extra_args(self): address_pairs = [{'mac_address': '00:00:00:00:00:01', 'ip_address': '10.0.0.1', -- 2.45.2