def test_stack_lock_steal_fail_stolen(self): db_api.stack_lock_create(self.stack.id, UUID1) # Simulate stolen lock db_api.stack_lock_release(self.stack.id, UUID1) db_api.stack_lock_create(self.stack.id, UUID2) observed = db_api.stack_lock_steal(self.stack.id, UUID3, UUID2) self.assertEqual(UUID2, observed)
def test_stack_lock_steal(self): create_stack_lock(self.ctx, self.stack.id, UUID1) db_api.stack_lock_steal(self.ctx, self.stack.id, UUID2) lock = db_api.stack_lock_get(self.ctx, self.stack.id) self.assertEqual(UUID2, lock['engine_id'])
def test_stack_lock_steal_fail_gone(self): db_api.stack_lock_create(self.stack.id, UUID1) db_api.stack_lock_release(self.stack.id, UUID1) observed = db_api.stack_lock_steal(self.stack.id, UUID1, UUID2) self.assertTrue(observed)
def test_stack_lock_steal_success(self): db_api.stack_lock_create(self.stack.id, UUID1) observed = db_api.stack_lock_steal(self.stack.id, UUID1, UUID2) self.assertIsNone(observed)
def steal(cls, context, stack_id, old_engine_id, new_engine_id): return db_api.stack_lock_steal(context, stack_id, old_engine_id, new_engine_id)