Fix port creation issue appeared with postgresql backend
IPAllocationPool has relation to IPAvailabilityRange which is setup to load eagerly. Eager loading is implemented with left outer join which is incompatible with with_lockmode('update') on postgresql. The fix redefines eager loading with options(joinedload) making it use inner join. fixes bug 1215350 Change-Id: I148d37f2a1c2a340327d36c240eb8173aee9219a
This commit is contained in:
parent
4be6b6e697
commit
a098e0cb11
@ -312,9 +312,11 @@ class NeutronDbPluginV2(neutron_plugin_base_v2.NeutronPluginBaseV2,
|
||||
subnet.
|
||||
"""
|
||||
# Grab all allocation pools for the subnet
|
||||
pool_qry = context.session.query(
|
||||
models_v2.IPAllocationPool).with_lockmode('update')
|
||||
allocation_pools = pool_qry.filter_by(subnet_id=subnet_id)
|
||||
allocation_pools = (context.session.query(
|
||||
models_v2.IPAllocationPool).filter_by(subnet_id=subnet_id).
|
||||
options(orm.joinedload('available_ranges', innerjoin=True)).
|
||||
with_lockmode('update'))
|
||||
|
||||
# Find the allocation pool for the IP to recycle
|
||||
pool_id = None
|
||||
for allocation_pool in allocation_pools:
|
||||
|
Loading…
x
Reference in New Issue
Block a user