diff options
| author | Devananda van der Veen <devananda.vdv@gmail.com> | 2012-10-28 08:20:22 -0700 |
|---|---|---|
| committer | Devananda van der Veen <devananda.vdv@gmail.com> | 2012-10-29 17:13:59 -0700 |
| commit | 0bf7d5f746ad9088b24142e7bca7e5b39d1cf206 (patch) | |
| tree | 752388e9371e2e4f664b6f71da4c5647844596ec | |
| parent | b21cc437be1e0a78f33419b70be6b9fb6ea5d7f7 (diff) | |
| download | nova-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.py | 37 |
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): |
