def test_purge_deleted(self): now = datetime.now() delta = timedelta(seconds=3600 * 7) deleted = [now - delta * i for i in range(1, 6)] templates = [create_raw_template(self.ctx) for i in range(5)] creds = [create_user_creds(self.ctx) for i in range(5)] stacks = [create_stack(self.ctx, templates[i], creds[i], deleted_at=deleted[i]) for i in range(5)] class MyDatetime(): def now(self): return now self.useFixture(fixtures.MonkeyPatch('heat.db.sqlalchemy.api.datetime', MyDatetime())) db_api.purge_deleted(age=1, granularity='days') self._deleted_stack_existance(utils.dummy_context(), stacks, (0, 1, 2), (3, 4)) db_api.purge_deleted(age=22, granularity='hours') self._deleted_stack_existance(utils.dummy_context(), stacks, (0, 1, 2), (3, 4)) db_api.purge_deleted(age=1100, granularity='minutes') self._deleted_stack_existance(utils.dummy_context(), stacks, (0, 1), (2, 3, 4)) db_api.purge_deleted(age=3600, granularity='seconds') self._deleted_stack_existance(utils.dummy_context(), stacks, (), (0, 1, 2, 3, 4))
def purge_deleted(): """Remove database records that have been previously soft deleted.""" db_api.purge_deleted(CONF.command.age, CONF.command.granularity, CONF.command.project_id, CONF.command.batch_size)