Eager load columns in volume_get_active_by_window

All other volume-related methods in db.sqlalchemy.api are eager loading
volume_metadata, volume_admin_metadata (if admin), volume_type,
volume_attachment and consistencygroup. volume_get_active_by_window
wasn't, causing fails because of SQLAlchemy Session being closed when
trying to lazy load volume_metadata. This commit adds missing
options(joinedload()) to this query.

Change-Id: I33ec89d7f1f43aae6010aaa6e12951b7c522b8f0
Closes-Bug: 1517763
Related-Bug: 1501838
(cherry picked from commit 586727cef7)
This commit is contained in:
Michał Dulko 2015-11-20 12:36:22 +01:00 committed by jichenjc
parent e285bc276a
commit 7e970a1da6
1 changed files with 8 additions and 0 deletions

View File

@ -2770,6 +2770,14 @@ def volume_get_active_by_window(context,
if project_id:
query = query.filter_by(project_id=project_id)
query = (query.options(joinedload('volume_metadata')).
options(joinedload('volume_type')).
options(joinedload('volume_attachment')).
options(joinedload('consistencygroup')))
if is_admin_context(context):
query = query.options(joinedload('volume_admin_metadata'))
return query.all()