10f4a40137
When recycling an IP, allocation pools are loaded with an inner join with ip avaiblity ranges. However, if the pool is exhausted, there will be no availability ranges and the query will return no results because of the inner join. It will therefore be impossible to reuse IP addresses once the pool has been exhausted. This patch tries to reload allocation pools without joining on IP avaiability ranges if the first query did not return any result. Replacing an inner join with an outer join will not be possible as postgresql backend does not support 'SELECT ... FOR UPDATE' with outer joins (for more info see bug 1215350). The patch also contains unit tests for verifying IP are recycled correctly even when the pool is exhausted. Bug 1240353 Change-Id: I87f274bd759cb47be77717f0760d3704f9f34ade |
||
---|---|---|
.. | ||
firewall | ||
loadbalancer | ||
metering | ||
migration | ||
vpn | ||
__init__.py | ||
agents_db.py | ||
agentschedulers_db.py | ||
allowedaddresspairs_db.py | ||
api.py | ||
db_base_plugin_v2.py | ||
dhcp_rpc_base.py | ||
external_net_db.py | ||
extradhcpopt_db.py | ||
extraroute_db.py | ||
l3_agentschedulers_db.py | ||
l3_db.py | ||
l3_gwmode_db.py | ||
l3_rpc_base.py | ||
model_base.py | ||
models_v2.py | ||
portbindings_base.py | ||
portbindings_db.py | ||
portsecurity_db.py | ||
quota_db.py | ||
routedserviceinsertion_db.py | ||
routerservicetype_db.py | ||
securitygroups_db.py | ||
securitygroups_rpc_base.py | ||
servicetype_db.py | ||
sqlalchemyutils.py |