summaryrefslogtreecommitdiff
path: root/heat/db
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2017-12-06 17:40:25 +0000
committerGerrit Code Review <review@openstack.org>2017-12-06 17:40:25 +0000
commit8f6c09df0f23b8cf49f3d64a2152c7526222c8d1 (patch)
treedef97b6b98f359640909d3dfbfd209e456a86fb2 /heat/db
parent10179a88ece8a42f5d37a56f5151a2dac543c39a (diff)
parent23e06f66b9e0ccb667c24318764da72aa82d4e18 (diff)
downloadheat-8f6c09df0f23b8cf49f3d64a2152c7526222c8d1.tar.gz
Merge "Speed up event listing with nested stacks"
Diffstat (limited to 'heat/db')
-rw-r--r--heat/db/sqlalchemy/api.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py
index 10e7f5d74..d00933e88 100644
--- a/heat/db/sqlalchemy/api.py
+++ b/heat/db/sqlalchemy/api.py
@@ -496,15 +496,18 @@ def resource_get_all_active_by_stack(context, stack_id):
def resource_get_all_by_root_stack(context, stack_id, filters=None,
- eager=True):
+ stack_id_only=False):
query = context.session.query(
models.Resource
).filter_by(
root_stack_id=stack_id
- ).options(orm.joinedload("data"))
+ )
- if eager:
- query = query.options(orm.joinedload("rsrc_prop_data"))
+ if stack_id_only:
+ query = query.options(orm.load_only("id", "stack_id"))
+ else:
+ query = query.options(orm.joinedload("data")).options(
+ orm.joinedload("rsrc_prop_data"))
query = db_filters.exact_filter(query, models.Resource, filters)
results = query.all()