summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevananda van der Veen <devananda.vdv@gmail.com>2012-10-28 08:20:22 -0700
committerDevananda van der Veen <devananda.vdv@gmail.com>2012-10-29 17:13:59 -0700
commit0bf7d5f746ad9088b24142e7bca7e5b39d1cf206 (patch)
tree752388e9371e2e4f664b6f71da4c5647844596ec
parentb21cc437be1e0a78f33419b70be6b9fb6ea5d7f7 (diff)
downloadnova-0bf7d5f746ad9088b24142e7bca7e5b39d1cf206.tar.gz
nova-0bf7d5f746ad9088b24142e7bca7e5b39d1cf206.tar.xz
nova-0bf7d5f746ad9088b24142e7bca7e5b39d1cf206.zip
improve sessions around compute_node_*
Removed 'session' parameter from public method compute_node_get, and replaced private calls with new method _compute_node_get. Removed unused session paramter from other compute_node_* methods. Change-Id: I943306be014b61d8818fdbe7891f6ad5ef934751
-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):