diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-30 18:00:26 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-30 18:00:26 +0000 |
| commit | 72e45ddcfd9a3d4b2424737a66be911c00f4e493 (patch) | |
| tree | 9d4caa78f1f6729c618c90d53d0fa5e9b84738c6 | |
| parent | 2ccd67db63c6ab007114bb910204835cee0f2bea (diff) | |
| parent | 0bf7d5f746ad9088b24142e7bca7e5b39d1cf206 (diff) | |
| download | nova-72e45ddcfd9a3d4b2424737a66be911c00f4e493.tar.gz nova-72e45ddcfd9a3d4b2424737a66be911c00f4e493.tar.xz nova-72e45ddcfd9a3d4b2424737a66be911c00f4e493.zip | |
Merge "improve sessions around compute_node_*"
| -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): |
