Merge "Get rid of additional fixed_ip filter join" into stable/newton

This commit is contained in:
Jenkins 2017-03-18 22:19:11 +00:00 committed by Gerrit Code Review
commit 608eee3814
1 changed files with 8 additions and 3 deletions

View File

@ -1273,11 +1273,16 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
ip_addresses = fixed_ips.get('ip_address')
subnet_ids = fixed_ips.get('subnet_id')
if ip_addresses or subnet_ids:
query = query.join(Port.fixed_ips)
if ip_addresses:
query = query.filter(IPAllocation.ip_address.in_(ip_addresses))
query = query.filter(
Port.fixed_ips.any(
IPAllocation.ip_address.in_(ip_addresses)
)
)
if subnet_ids:
query = query.filter(IPAllocation.subnet_id.in_(subnet_ids))
query = query.filter(
Port.fixed_ips.any(IPAllocation.subnet_id.in_(subnet_ids))
)
query = self._apply_filters_to_query(query, Port, filters, context)
if sorts: