Get rid of additional fixed_ip filter join

Partial-Bug: #1649317
Change-Id: I692b4b85d539af3465a48eed83e40f2ad5b87e51
This commit is contained in:
Kevin Benton 2017-01-09 14:14:57 -08:00
parent 62fb004af6
commit f204728e37
1 changed files with 8 additions and 3 deletions

View File

@ -1306,11 +1306,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: