Merge "Use subqueryload in l2pop DB for binding ports"

This commit is contained in:
Jenkins 2017-07-04 23:37:45 +00:00 committed by Gerrit Code Review
commit e0c08bba30
1 changed files with 4 additions and 0 deletions

View File

@ -16,6 +16,7 @@
from neutron_lib import constants as const
from oslo_serialization import jsonutils
from oslo_utils import timeutils
from sqlalchemy import orm
from neutron.db.models import agent as agent_model
from neutron.db.models import l3ha as l3ha_model
@ -70,6 +71,7 @@ def _get_active_network_ports(session, network_id):
query = query.join(agent_model.Agent,
agent_model.Agent.host == ml2_models.PortBinding.host)
query = query.join(models_v2.Port)
query = query.options(orm.subqueryload(ml2_models.PortBinding.port))
query = query.filter(models_v2.Port.network_id == network_id,
models_v2.Port.status == const.PORT_STATUS_ACTIVE)
return query
@ -109,6 +111,8 @@ def get_dvr_active_network_ports(session, network_id):
agent_model.Agent.host ==
ml2_models.DistributedPortBinding.host)
query = query.join(models_v2.Port)
query = query.options(
orm.subqueryload(ml2_models.DistributedPortBinding.port))
query = query.filter(models_v2.Port.network_id == network_id,
models_v2.Port.status == const.PORT_STATUS_ACTIVE,
models_v2.Port.device_owner ==