From 2ed1acbf784fdf58e5690283ef01f7f5aeb442fe Mon Sep 17 00:00:00 2001 From: Chris Behrens Date: Tue, 21 Aug 2012 16:57:13 +0000 Subject: 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 --- nova/db/sqlalchemy/api.py | 19 ++++++++++--------- 1 file 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): -- cgit