def test_aggregate_create_avoid_name_conflict(self): """Test we can avoid conflict on deleted aggregates.""" r1 = _create_aggregate(metadata=None) db.aggregate_delete(context.get_admin_context(), r1.id) values = {'name': r1.name, 'availability_zone': 'new_zone'} 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_delete(self): """Ensure we can delete an aggregate.""" ctxt = context.get_admin_context() result = _create_aggregate(context=ctxt, metadata=None) db.aggregate_delete(ctxt, result['id']) expected = db.aggregate_get_all(ctxt) self.assertEqual(0, len(expected)) aggregate = db.aggregate_get(ctxt.elevated(read_deleted='yes'), result['id']) self.assertEqual(aggregate["operational_state"], "dismissed")
def test_aggregate_get_all_non_deleted(self): """Ensure we get only non-deleted aggregates.""" ctxt = context.get_admin_context() add_counter = 5 remove_counter = 2 aggregates = [] for c in xrange(1, add_counter): values = {'name': 'fake_aggregate_%d' % c, 'availability_zone': 'fake_avail_zone'} aggregates.append(_create_aggregate(context=ctxt, 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) self.assertEqual(len(results), add_counter - remove_counter)