summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-30 18:00:26 +0000
committerGerrit Code Review <review@openstack.org>2012-10-30 18:00:26 +0000
commit72e45ddcfd9a3d4b2424737a66be911c00f4e493 (patch)
tree9d4caa78f1f6729c618c90d53d0fa5e9b84738c6
parent2ccd67db63c6ab007114bb910204835cee0f2bea (diff)
parent0bf7d5f746ad9088b24142e7bca7e5b39d1cf206 (diff)
downloadnova-72e45ddcfd9a3d4b2424737a66be911c00f4e493.tar.gz
nova-72e45ddcfd9a3d4b2424737a66be911c00f4e493.tar.xz
nova-72e45ddcfd9a3d4b2424737a66be911c00f4e493.zip
Merge "improve sessions around compute_node_*"
-rw-r--r--nova/db/sqlalchemy/api.py37
1 files changed, 18 insertions, 19 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 8f4640ea9..b68b6f4cb 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -480,7 +480,11 @@ def service_update(context, service_id, values):
###################
-def compute_node_get(context, compute_id, session=None):
+def compute_node_get(context, compute_id):
+ return _compute_node_get(context, compute_id)
+
+
+def _compute_node_get(context, compute_id, session=None):
result = model_query(context, models.ComputeNode, session=session).\
filter_by(id=compute_id).\
options(joinedload('service')).\
@@ -494,8 +498,8 @@ 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).\
+def compute_node_get_all(context):
+ return model_query(context, models.ComputeNode).\
options(joinedload('service')).\
options(joinedload('stats')).\
all()
@@ -523,18 +527,14 @@ def _prep_stats_dict(values):
@require_admin_context
-def compute_node_create(context, values, session=None):
+def compute_node_create(context, values):
"""Creates a new ComputeNode and populates the capacity fields
with the most recent data."""
_prep_stats_dict(values)
- if not session:
- session = get_session()
-
- with session.begin(subtransactions=True):
- compute_node_ref = models.ComputeNode()
- session.add(compute_node_ref)
- compute_node_ref.update(values)
+ compute_node_ref = models.ComputeNode()
+ compute_node_ref.update(values)
+ compute_node_ref.save()
return compute_node_ref
@@ -581,20 +581,19 @@ def compute_node_update(context, compute_id, values, prune_stats=False):
session = get_session()
with session.begin(subtransactions=True):
_update_stats(context, stats, compute_id, session, prune_stats)
- compute_ref = compute_node_get(context, compute_id, session=session)
+ compute_ref = _compute_node_get(context, compute_id, session=session)
compute_ref.update(values)
return compute_ref
def compute_node_get_by_host(context, host):
"""Get all capacity entries for the given host."""
- session = get_session()
- with session.begin():
- node = session.query(models.ComputeNode).\
- join('service').\
- filter(models.Service.host == host).\
- filter_by(deleted=False)
- return node.first()
+ result = model_query(context, models.ComputeNode).\
+ join('service').\
+ filter(models.Service.host == host).\
+ filter_by(deleted=False).\
+ first()
+ return result
def compute_node_statistics(context):