diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-04-10 22:59:24 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-04-10 22:59:24 +0000 |
| commit | 148332c964e0caccff1481b29fd64c84cefc55eb (patch) | |
| tree | acd56259212b52ba62640c303a0dd529fd54ba14 | |
| parent | 664598d86b168742d91a2c416b845b3f45860990 (diff) | |
| parent | ef1f1738f23909feb5c5b2a617b1cb88986989ee (diff) | |
Merge "Clean up read_deleted support in host aggregates code"
| -rw-r--r-- | nova/compute/api.py | 9 | ||||
| -rw-r--r-- | nova/db/api.py | 20 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 59 | ||||
| -rw-r--r-- | nova/tests/test_compute.py | 4 | ||||
| -rw-r--r-- | nova/tests/test_db_api.py | 15 |
5 files changed, 46 insertions, 61 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py index 4452518be..d5d7723fa 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1748,7 +1748,7 @@ class AggregateAPI(base.Base): def get_aggregate_list(self, context): """Get all the aggregates for this zone.""" - aggregates = self.db.aggregate_get_all(context, read_deleted="no") + aggregates = self.db.aggregate_get_all(context) return [self._get_aggregate_info(context, a) for a in aggregates] def update_aggregate(self, context, aggregate_id, values): @@ -1779,8 +1779,7 @@ class AggregateAPI(base.Base): def delete_aggregate(self, context, aggregate_id): """Deletes the aggregate.""" - hosts = self.db.aggregate_host_get_all(context, aggregate_id, - read_deleted="no") + hosts = self.db.aggregate_host_get_all(context, aggregate_id) if len(hosts) > 0: raise exception.InvalidAggregateAction(action='delete', aggregate_id=aggregate_id, @@ -1845,9 +1844,7 @@ class AggregateAPI(base.Base): def _get_aggregate_info(self, context, aggregate): """Builds a dictionary with aggregate props, metadata and hosts.""" metadata = self.db.aggregate_metadata_get(context, aggregate.id) - hosts = self.db.aggregate_host_get_all(context, aggregate.id, - read_deleted="no") - + hosts = self.db.aggregate_host_get_all(context, aggregate.id) result = dict(aggregate.iteritems()) result["metadata"] = metadata result["hosts"] = hosts diff --git a/nova/db/api.py b/nova/db/api.py index a7fbd34fd..f217a9e56 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -1707,14 +1707,14 @@ def aggregate_create(context, values, metadata=None): return IMPL.aggregate_create(context, values, metadata) -def aggregate_get(context, aggregate_id, **kwargs): +def aggregate_get(context, aggregate_id): """Get a specific aggregate by id.""" - return IMPL.aggregate_get(context, aggregate_id, **kwargs) + return IMPL.aggregate_get(context, aggregate_id) -def aggregate_get_by_host(context, host, **kwargs): +def aggregate_get_by_host(context, host): """Get a specific aggregate by host""" - return IMPL.aggregate_get_by_host(context, host, **kwargs) + return IMPL.aggregate_get_by_host(context, host) def aggregate_update(context, aggregate_id, values): @@ -1728,9 +1728,9 @@ def aggregate_delete(context, aggregate_id): return IMPL.aggregate_delete(context, aggregate_id) -def aggregate_get_all(context, **kwargs): +def aggregate_get_all(context): """Get all aggregates.""" - return IMPL.aggregate_get_all(context, **kwargs) + return IMPL.aggregate_get_all(context) def aggregate_metadata_add(context, aggregate_id, metadata, set_delete=False): @@ -1738,9 +1738,9 @@ def aggregate_metadata_add(context, aggregate_id, metadata, set_delete=False): IMPL.aggregate_metadata_add(context, aggregate_id, metadata, set_delete) -def aggregate_metadata_get(context, aggregate_id, **kwargs): +def aggregate_metadata_get(context, aggregate_id): """Get metadata for the specified aggregate.""" - return IMPL.aggregate_metadata_get(context, aggregate_id, **kwargs) + return IMPL.aggregate_metadata_get(context, aggregate_id) def aggregate_metadata_delete(context, aggregate_id, key): @@ -1753,9 +1753,9 @@ def aggregate_host_add(context, aggregate_id, host): IMPL.aggregate_host_add(context, aggregate_id, host) -def aggregate_host_get_all(context, aggregate_id, **kwargs): +def aggregate_host_get_all(context, aggregate_id): """Get hosts for the specified aggregate.""" - return IMPL.aggregate_host_get_all(context, aggregate_id, **kwargs) + return IMPL.aggregate_host_get_all(context, aggregate_id) def aggregate_host_delete(context, aggregate_id, host): diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index a0224796b..ff1b5a3a4 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -4169,8 +4169,10 @@ def sm_volume_get_all(context): ################ -def _aggregate_get_query(context, model_class, id_field, id, **kwargs): - return model_query(context, model_class, **kwargs).filter(id_field == id) +def _aggregate_get_query(context, model_class, id_field, id, + session=None, read_deleted=None): + return model_query(context, model_class, session=session, + read_deleted=read_deleted).filter(id_field == id) @require_admin_context @@ -4200,12 +4202,11 @@ def aggregate_create(context, values, metadata=None): @require_admin_context -def aggregate_get(context, aggregate_id, **kwargs): +def aggregate_get(context, aggregate_id): aggregate = _aggregate_get_query(context, models.Aggregate, models.Aggregate.id, - aggregate_id, - **kwargs).first() + aggregate_id).first() if not aggregate: raise exception.AggregateNotFound(aggregate_id=aggregate_id) @@ -4214,18 +4215,16 @@ def aggregate_get(context, aggregate_id, **kwargs): @require_admin_context -def aggregate_get_by_host(context, host, **kwargs): +def aggregate_get_by_host(context, host): aggregate_host = _aggregate_get_query(context, models.AggregateHost, models.AggregateHost.host, - host, - **kwargs).first() + host).first() if not aggregate_host: raise exception.AggregateHostNotFound(host=host) - return aggregate_get(context, aggregate_host.aggregate_id, - **kwargs) + return aggregate_get(context, aggregate_host.aggregate_id) @require_admin_context @@ -4233,9 +4232,9 @@ def aggregate_update(context, aggregate_id, values): session = get_session() aggregate = _aggregate_get_query(context, models.Aggregate, - models.Aggregate.id, aggregate_id, - session=session, - read_deleted='no').first() + models.Aggregate.id, + aggregate_id, + session=session).first() if aggregate: metadata = values.get('metadata') if metadata is not None: @@ -4256,8 +4255,8 @@ def aggregate_update(context, aggregate_id, values): def aggregate_delete(context, aggregate_id): query = _aggregate_get_query(context, models.Aggregate, - models.Aggregate.id, aggregate_id, - read_deleted='no') + models.Aggregate.id, + aggregate_id) if query.first(): query.update({'deleted': True, 'deleted_at': utils.utcnow(), @@ -4268,20 +4267,16 @@ def aggregate_delete(context, aggregate_id): @require_admin_context -def aggregate_get_all(context, **kwargs): - if 'read_deleted' not in kwargs: - kwargs['read_deleted'] = 'yes' - return model_query(context, - models.Aggregate, - **kwargs).all() +def aggregate_get_all(context): + return model_query(context, models.Aggregate).all() @require_admin_context @require_aggregate_exists -def aggregate_metadata_get(context, aggregate_id, **kwargs): +def aggregate_metadata_get(context, aggregate_id): rows = model_query(context, - models.AggregateMetadata, - **kwargs).filter_by(aggregate_id=aggregate_id).all() + models.AggregateMetadata).\ + filter_by(aggregate_id=aggregate_id).all() return dict([(r['key'], r['value']) for r in rows]) @@ -4292,7 +4287,7 @@ def aggregate_metadata_delete(context, aggregate_id, key): query = _aggregate_get_query(context, models.AggregateMetadata, models.AggregateMetadata.aggregate_id, - aggregate_id, read_deleted='no').\ + aggregate_id).\ filter_by(key=key) if query.first(): query.update({'deleted': True, @@ -4305,8 +4300,7 @@ def aggregate_metadata_delete(context, aggregate_id, key): @require_admin_context @require_aggregate_exists -def aggregate_metadata_get_item(context, aggregate_id, key, - session=None): +def aggregate_metadata_get_item(context, aggregate_id, key, session=None): result = _aggregate_get_query(context, models.AggregateMetadata, models.AggregateMetadata.aggregate_id, @@ -4356,12 +4350,10 @@ def aggregate_metadata_add(context, aggregate_id, metadata, set_delete=False): @require_admin_context @require_aggregate_exists -def aggregate_host_get_all(context, aggregate_id, **kwargs): - if 'read_deleted' not in kwargs: - kwargs['read_deleted'] = 'yes' +def aggregate_host_get_all(context, aggregate_id): rows = model_query(context, - models.AggregateHost, - **kwargs).filter_by(aggregate_id=aggregate_id).all() + models.AggregateHost).\ + filter_by(aggregate_id=aggregate_id).all() return [r.host for r in rows] @@ -4372,8 +4364,7 @@ def aggregate_host_delete(context, aggregate_id, host): query = _aggregate_get_query(context, models.AggregateHost, models.AggregateHost.aggregate_id, - aggregate_id, - read_deleted='no').filter_by(host=host) + aggregate_id).filter_by(host=host) if query.first(): query.update({'deleted': True, 'deleted_at': utils.utcnow(), diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 2e7e7de9b..27fadc321 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -3286,8 +3286,8 @@ class ComputeAPIAggrTestCase(test.TestCase): aggr = self.api.create_aggregate(self.context, 'fake_aggregate', 'fake_zone') self.api.delete_aggregate(self.context, aggr['id']) - expected = db.aggregate_get(self.context, aggr['id'], - read_deleted='yes') + expected = db.aggregate_get(self.context.elevated(read_deleted='yes'), + aggr['id']) self.assertNotEqual(aggr['operational_state'], expected['operational_state']) diff --git a/nova/tests/test_db_api.py b/nova/tests/test_db_api.py index b7b9531c3..b5607cee4 100644 --- a/nova/tests/test_db_api.py +++ b/nova/tests/test_db_api.py @@ -503,11 +503,10 @@ class AggregateDBApiTestCase(test.TestCase): ctxt = context.get_admin_context() result = _create_aggregate(context=ctxt, metadata=None) db.aggregate_delete(ctxt, result['id']) - expected = db.aggregate_get_all(ctxt, read_deleted='no') + expected = db.aggregate_get_all(ctxt) self.assertEqual(0, len(expected)) - - ctxt = context.get_admin_context(read_deleted='yes') - aggregate = db.aggregate_get(ctxt, result['id']) + aggregate = db.aggregate_get(ctxt.elevated(read_deleted='yes'), + result['id']) self.assertEqual(aggregate["operational_state"], "dismissed") def test_aggregate_update(self): @@ -575,7 +574,7 @@ class AggregateDBApiTestCase(test.TestCase): values=values, metadata=None)) for c in xrange(1, remove_counter): db.aggregate_delete(ctxt, aggregates[c - 1].id) - results = db.aggregate_get_all(ctxt, read_deleted='no') + results = db.aggregate_get_all(ctxt) self.assertEqual(len(results), add_counter - remove_counter) def test_aggregate_metadata_add(self): @@ -633,8 +632,7 @@ class AggregateDBApiTestCase(test.TestCase): host = _get_fake_aggr_hosts()[0] db.aggregate_host_delete(ctxt, result.id, host) db.aggregate_host_add(ctxt, result.id, host) - expected = db.aggregate_host_get_all(ctxt, result.id, - read_deleted='no') + expected = db.aggregate_host_get_all(ctxt, result.id) self.assertEqual(len(expected), 1) def test_aggregate_host_add_duplicate_raise_conflict(self): @@ -671,8 +669,7 @@ class AggregateDBApiTestCase(test.TestCase): result = _create_aggregate_with_hosts(context=ctxt, metadata=None) db.aggregate_host_delete(ctxt, result.id, _get_fake_aggr_hosts()[0]) - expected = db.aggregate_host_get_all(ctxt, result.id, - read_deleted='no') + expected = db.aggregate_host_get_all(ctxt, result.id) self.assertEqual(0, len(expected)) def test_aggregate_host_delete_raise_not_found(self): |
