Beispiel #1
0
    def _clean_db(self):
        lookup_utils.clear_caches()

        contexts = [
            get_context(default=False),
            get_context(default=True)
        ]

        for ctx in contexts:
            auth_context.set_ctx(ctx)

            with mock.patch('mistral.services.security.get_project_id',
                            new=mock.MagicMock(return_value=ctx.project_id)):
                with db_api.transaction():
                    db_api.delete_event_triggers()
                    db_api.delete_cron_triggers()
                    db_api.delete_workflow_executions()
                    db_api.delete_task_executions()
                    db_api.delete_action_executions()
                    db_api.delete_workbooks()
                    db_api.delete_workflow_definitions()
                    db_api.delete_environments()
                    db_api.delete_resource_members()
                    db_api.delete_delayed_calls()

        sqlite_lock.cleanup()

        if not cfg.CONF.database.connection.startswith('sqlite'):
            db_sa_base.get_engine().dispose()
    def delete_calls(db_calls):
        """Deletes delayed calls.

        :param db_calls: Delayed calls to delete from DB.
        """
        try:
            db_api.delete_delayed_calls(id={'in': [c.id for c in db_calls]})
        except Exception as e:
            LOG.error("Failed to delete all delayed calls [exception=%s]", e)

            # We have to re-raise any exception because the transaction
            # would be already invalid anyway. If it's a deadlock then
            # it will be handled.
            raise e

        LOG.debug("Scheduler deleted %s delayed calls.", len(db_calls))