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
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()