Merge "Fixes bug 943188"
This commit is contained in:
commit
fd80f1b2e1
nova
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user