Prefetch data in resource_get_by_name_and_stack

This loads resource and resource data in a single query, which means
one less sql query per stack resource in a call to describe_stack_resource.

Change-Id: Ic2e1ab68cf651f290be75206fd5c0c841de4ef82
Related-Bug: #1306743
This commit is contained in:
Steve Baker 2014-04-23 09:31:36 +12:00
parent 9bd4f3fcc5
commit 7678f0c29c
1 changed files with 3 additions and 1 deletions

View File

@ -18,6 +18,7 @@ import sys
from oslo.config import cfg
import sqlalchemy
from sqlalchemy import orm
from sqlalchemy.orm.session import Session
from heat.common import crypt
@ -112,7 +113,8 @@ def resource_get(context, resource_id):
def resource_get_by_name_and_stack(context, resource_name, stack_id):
result = model_query(context, models.Resource).\
filter_by(name=resource_name).\
filter_by(stack_id=stack_id).first()
filter_by(stack_id=stack_id).\
options(orm.joinedload("data")).first()
return result