summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2012-08-21 16:57:13 +0000
committerChris Behrens <cbehrens@codestud.com>2012-08-21 16:57:13 +0000
commit2ed1acbf784fdf58e5690283ef01f7f5aeb442fe (patch)
tree59875d1f88a6f265d3744be6c40ea54b421d7f56 /nova/db
parent96e72e7295909cbe2ddb835283f68168cef883c1 (diff)
downloadnova-2ed1acbf784fdf58e5690283ef01f7f5aeb442fe.tar.gz
nova-2ed1acbf784fdf58e5690283ef01f7f5aeb442fe.tar.xz
nova-2ed1acbf784fdf58e5690283ef01f7f5aeb442fe.zip
Have compute_node_get() join 'service'
Fixes bug 1039633 compute_node_get() is used by hypervisors extension and it accesses compute_node['service']. Lazy joins fail now and then.. Also fixes line continuation indents with other compute_node calls in sqlalchemy/api.py Change-Id: I3ac02aad739e96a4866a64cabe859cf484341784
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/api.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 7128fada6..d15609de7 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -484,9 +484,10 @@ def service_update(context, service_id, values):
def compute_node_get(context, compute_id, session=None):
result = model_query(context, models.ComputeNode, session=session).\
- filter_by(id=compute_id).\
- options(joinedload('stats')).\
- first()
+ filter_by(id=compute_id).\
+ options(joinedload('service')).\
+ options(joinedload('stats')).\
+ first()
if not result:
raise exception.ComputeHostNotFound(host=compute_id)
@@ -497,18 +498,18 @@ def compute_node_get(context, compute_id, session=None):
@require_admin_context
def compute_node_get_all(context, session=None):
return model_query(context, models.ComputeNode, session=session).\
- options(joinedload('service')).\
- options(joinedload('stats')).\
- all()
+ options(joinedload('service')).\
+ options(joinedload('stats')).\
+ all()
@require_admin_context
def compute_node_search_by_hypervisor(context, hypervisor_match):
field = models.ComputeNode.hypervisor_hostname
return model_query(context, models.ComputeNode).\
- options(joinedload('service')).\
- filter(field.like('%%%s%%' % hypervisor_match)).\
- all()
+ options(joinedload('service')).\
+ filter(field.like('%%%s%%' % hypervisor_match)).\
+ all()
def _prep_stats_dict(values):