diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-03-12 23:27:41 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-03-12 23:27:41 +0000 |
| commit | fd80f1b2e1dc03b77fa51cfa27dedce1c593201d (patch) | |
| tree | 235ba162d667e0c142d29a5d730f1e90880e9a31 | |
| parent | 5c20aee542fd9af473ca845020ecac9fe9df2d41 (diff) | |
| parent | 6857fd2d952e5602a227a5f24173c75ba3e70f7b (diff) | |
| download | nova-fd80f1b2e1dc03b77fa51cfa27dedce1c593201d.tar.gz nova-fd80f1b2e1dc03b77fa51cfa27dedce1c593201d.tar.xz nova-fd80f1b2e1dc03b77fa51cfa27dedce1c593201d.zip | |
Merge "Fixes bug 943188"
| -rw-r--r-- | nova/compute/api.py | 2 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 9 | ||||
| -rw-r--r-- | nova/tests/test_db_api.py | 3 |
3 files changed, 8 insertions, 6 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py index e1bebfc90..71d7627d5 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1760,8 +1760,6 @@ class AggregateAPI(base.Base): raise exception.InvalidAggregateAction(action='delete', aggregate_id=aggregate_id, reason='not empty') - values = {'operational_state': aggregate_states.DISMISSED} - self.db.aggregate_update(context, aggregate_id, values) self.db.aggregate_delete(context, aggregate_id) def add_host_to_aggregate(self, context, aggregate_id, host): diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 759a07827..7af4323a9 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -4153,15 +4153,15 @@ def aggregate_create(context, values, metadata=None): values['name'], session=session, read_deleted='yes').first() + values.setdefault('operational_state', aggregate_states.CREATED) if not aggregate: aggregate = models.Aggregate() - values.setdefault('operational_state', aggregate_states.CREATED) aggregate.update(values) aggregate.save(session=session) elif aggregate.deleted: - aggregate.update({'deleted': False, - 'deleted_at': None, - 'availability_zone': values['availability_zone']}) + values['deleted'] = False + values['deleted_at'] = None + aggregate.update(values) aggregate.save(session=session) else: raise exception.AggregateNameExists(aggregate_name=values['name']) @@ -4230,6 +4230,7 @@ def aggregate_delete(context, aggregate_id): if query.first(): query.update({'deleted': True, 'deleted_at': utils.utcnow(), + 'operational_state': aggregate_states.DISMISSED, 'updated_at': literal_column('updated_at')}) else: raise exception.AggregateNotFound(aggregate_id=aggregate_id) diff --git a/nova/tests/test_db_api.py b/nova/tests/test_db_api.py index 9b6f2b0d0..099e2b8a8 100644 --- a/nova/tests/test_db_api.py +++ b/nova/tests/test_db_api.py @@ -333,6 +333,7 @@ class AggregateDBApiTestCase(test.TestCase): r2 = _create_aggregate(values=values) self.assertEqual(r2.name, values['name']) self.assertEqual(r2.availability_zone, values['availability_zone']) + self.assertEqual(r2.operational_state, "created") def test_aggregate_create_raise_exist_exc(self): """Ensure aggregate names are distinct.""" @@ -409,6 +410,8 @@ class AggregateDBApiTestCase(test.TestCase): db.aggregate_delete(ctxt, result['id']) expected = db.aggregate_get_all(ctxt, read_deleted='no') self.assertEqual(0, len(expected)) + aggregate = db.aggregate_get(ctxt, result['id'], read_deleted='yes') + self.assertEqual(aggregate["operational_state"], "dismissed") def test_aggregate_update(self): """Ensure an aggregate can be updated.""" |
