From 6857fd2d952e5602a227a5f24173c75ba3e70f7b Mon Sep 17 00:00:00 2001 From: John Garbutt Date: Wed, 29 Feb 2012 11:28:12 +0000 Subject: Fixes bug 943188 Enusre when an aggregate is re-created, it is in the created state, not just the state it was when last created. Change-Id: Ie8d63e3d334a872d52d81a9bd66730f08323d5c9 --- nova/db/sqlalchemy/api.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'nova/db') diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index ba3c12b41..9fff21050 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -4303,15 +4303,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']) @@ -4380,6 +4380,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) -- cgit