Merge "Remove GROUP BY clause from CellMapping.get_by_project_id" into stable/rocky

This commit is contained in:
Zuul 2018-12-17 17:14:08 +00:00 committed by Gerrit Code Review
commit f598440037
1 changed files with 8 additions and 8 deletions

View File

@ -13,7 +13,6 @@
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import versionutils from oslo_utils import versionutils
import six.moves.urllib.parse as urlparse import six.moves.urllib.parse as urlparse
from sqlalchemy.orm import joinedload
from sqlalchemy.sql.expression import asc from sqlalchemy.sql.expression import asc
from sqlalchemy.sql import false from sqlalchemy.sql import false
from sqlalchemy.sql import true from sqlalchemy.sql import true
@ -276,13 +275,14 @@ class CellMappingList(base.ObjectListBase, base.NovaObject):
@staticmethod @staticmethod
@db_api.api_context_manager.reader @db_api.api_context_manager.reader
def _get_by_project_id_from_db(context, project_id): def _get_by_project_id_from_db(context, project_id):
mappings = context.session.query( # SELECT DISTINCT cell_id FROM instance_mappings \
api_models.InstanceMapping).\ # WHERE project_id = $project_id;
filter_by(project_id=project_id).\ cell_ids = context.session.query(
group_by(api_models.InstanceMapping.cell_id).\ api_models.InstanceMapping.cell_id).filter_by(
options(joinedload('cell_mapping', innerjoin=True)).\ project_id=project_id).distinct().subquery()
all() # SELECT cell_mappings WHERE cell_id IN ($cell_ids);
return (mapping.cell_mapping for mapping in mappings) return context.session.query(api_models.CellMapping).filter(
api_models.CellMapping.id.in_(cell_ids)).all()
@classmethod @classmethod
def get_by_project_id(cls, context, project_id): def get_by_project_id(cls, context, project_id):