789a46df61
When simultaneous attempts are made to add an interface to the same router including overlapping networks in cidrs, both attempts are successful. There is a check to avoid this overlap but is performed when creating the network interface and it is done over the ports already attached to the router, so at this moment the check is not able to detect the overlapping. Furthermore, the create_port operation over the ML2 plugin must be executed in isolated transactions, so trying to control the execution context or adding additional steps to the transaction is not feasible. This patch checks once the RouterPort is created on the neutron database if there is more than one overlapping port, triggering in that case the exception that will remove the the culprit of overlapping. Note: Added clean of l3_obj.RouterPort to avoid errors on setUp of test class L3TestCase, pick from [1]. Also added cfg allow_overlapping_ips to True for fullstack job, this one had been deprecated and enabled by default in newer releases but added in order to run the backported tests over this stable branch. Conflicts: neutron/db/l3_db.py (manually cherry picked from commit |
||
---|---|---|
.. | ||
agent | ||
api | ||
cmd | ||
common | ||
conf | ||
core_extensions | ||
db | ||
debug | ||
extensions | ||
hacking | ||
ipam | ||
notifiers | ||
objects | ||
pecan_wsgi | ||
plugins | ||
privileged | ||
quota | ||
scheduler | ||
services | ||
tests | ||
__init__.py | ||
_test_extension_portbindings.py | ||
dummy_plugin.py | ||
extension_stubs.py | ||
fake_resources.py | ||
test_auth.py | ||
test_manager.py | ||
test_neutron_plugin_base_v2.py | ||
test_opts.py | ||
test_policy.py | ||
test_service.py | ||
test_worker.py | ||
test_wsgi.py | ||
testlib_api.py |