コード例 #1
0
ファイル: api.py プロジェクト: zhichangwu/icehouse
def get_engine():
    """Return a SQLAlchemy engine."""
    """May assign _ENGINE if not already assigned"""
    global _ENGINE, sa_logger, _CONNECTION, _IDLE_TIMEOUT, _MAX_RETRIES,\
        _RETRY_INTERVAL

    if not _ENGINE:
        tries = _MAX_RETRIES
        retry_interval = _RETRY_INTERVAL

        connection_dict = sqlalchemy.engine.url.make_url(_CONNECTION)

        engine_args = {
            'pool_recycle': _IDLE_TIMEOUT,
            'echo': False,
            'convert_unicode': True
        }

        try:
            _ENGINE = sqlalchemy.create_engine(_CONNECTION, **engine_args)

            if 'mysql' in connection_dict.drivername:
                sqlalchemy.event.listen(_ENGINE, 'checkout', _ping_listener)

            _ENGINE.connect = _wrap_db_error(_ENGINE.connect)
            _ENGINE.connect()
        except Exception as err:
            msg = _("Error configuring registry database with supplied "
                    "sql_connection. Got error: %s") % err
            LOG.error(msg)
            raise

        sa_logger = logging.getLogger('sqlalchemy.engine')
        if CONF.sqlalchemy_debug:
            sa_logger.setLevel(logging.DEBUG)

        if CONF.db_auto_create:
            LOG.info(_('auto-creating glance registry DB'))
            models.register_models(_ENGINE)
            try:
                migration.version_control()
            except exception.DatabaseMigrationError:
                # only arises when the DB exists and is under version control
                pass
        else:
            LOG.info(_('not auto-creating glance registry DB'))

    return _ENGINE
コード例 #2
0
ファイル: api.py プロジェクト: CiscoAS/glance
def get_engine():
    """Return a SQLAlchemy engine."""
    """May assign _ENGINE if not already assigned"""
    global _ENGINE, sa_logger, _CONNECTION, _IDLE_TIMEOUT, _MAX_RETRIES,\
        _RETRY_INTERVAL

    if not _ENGINE:
        tries = _MAX_RETRIES
        retry_interval = _RETRY_INTERVAL

        connection_dict = sqlalchemy.engine.url.make_url(_CONNECTION)

        engine_args = {
            'pool_recycle': _IDLE_TIMEOUT,
            'echo': False,
            'convert_unicode': True}

        try:
            _ENGINE = sqlalchemy.create_engine(_CONNECTION, **engine_args)

            if 'mysql' in connection_dict.drivername:
                sqlalchemy.event.listen(_ENGINE, 'checkout', _ping_listener)

            _ENGINE.connect = _wrap_db_error(_ENGINE.connect)
            _ENGINE.connect()
        except Exception as err:
            msg = _("Error configuring registry database with supplied "
                    "sql_connection. Got error: %s") % err
            LOG.error(msg)
            raise

        sa_logger = logging.getLogger('sqlalchemy.engine')
        if CONF.debug:
            sa_logger.setLevel(logging.DEBUG)

        if CONF.db_auto_create:
            LOG.info(_('auto-creating glance registry DB'))
            models.register_models(_ENGINE)
            try:
                migration.version_control()
            except exception.DatabaseMigrationError:
                # only arises when the DB exists and is under version control
                pass
        else:
            LOG.info(_('not auto-creating glance registry DB'))

    return _ENGINE
コード例 #3
0
ファイル: api.py プロジェクト: savi-dev/glance
def configure_db():
    """
    Establish the database, create an engine if needed, and
    register the models.
    """
    global _ENGINE, sa_logger, _MAX_RETRIES, _RETRY_INTERVAL
    if not _ENGINE:
        sql_connection = CONF.sql_connection
        _MAX_RETRIES = CONF.sql_max_retries
        _RETRY_INTERVAL = CONF.sql_retry_interval
        connection_dict = sqlalchemy.engine.url.make_url(sql_connection)
        engine_args = {"pool_recycle": CONF.sql_idle_timeout, "echo": False, "convert_unicode": True}

        try:
            _ENGINE = sqlalchemy.create_engine(sql_connection, **engine_args)

            if "mysql" in connection_dict.drivername:
                sqlalchemy.event.listen(_ENGINE, "checkout", ping_listener)

            _ENGINE.connect = wrap_db_error(_ENGINE.connect)
            _ENGINE.connect()
        except Exception, err:
            msg = (
                _(
                    "Error configuring registry database with supplied "
                    "sql_connection '%(sql_connection)s'. "
                    "Got error:\n%(err)s"
                )
                % locals()
            )
            LOG.error(msg)
            raise

        sa_logger = logging.getLogger("sqlalchemy.engine")
        if CONF.debug:
            sa_logger.setLevel(logging.DEBUG)

        if CONF.db_auto_create:
            LOG.info("auto-creating glance registry DB")
            models.register_models(_ENGINE)
            try:
                migration.version_control()
            except exception.DatabaseMigrationError:
                # only arises when the DB exists and is under version control
                pass
        else:
            LOG.info("not auto-creating glance registry DB")
コード例 #4
0
def configure_db():
    """
    Establish the database, create an engine if needed, and
    register the models.
    """
    global _ENGINE, sa_logger, _MAX_RETRIES, _RETRY_INTERVAL
    if not _ENGINE:
        sql_connection = CONF.sql_connection
        _MAX_RETRIES = CONF.sql_max_retries
        _RETRY_INTERVAL = CONF.sql_retry_interval
        connection_dict = sqlalchemy.engine.url.make_url(sql_connection)
        engine_args = {
            'pool_recycle': CONF.sql_idle_timeout,
            'echo': False,
            'convert_unicode': True
        }

        try:
            _ENGINE = sqlalchemy.create_engine(sql_connection, **engine_args)

            if 'mysql' in connection_dict.drivername:
                sqlalchemy.event.listen(_ENGINE, 'checkout', ping_listener)

            _ENGINE.connect = wrap_db_error(_ENGINE.connect)
            _ENGINE.connect()
        except Exception, err:
            msg = _("Error configuring registry database with supplied "
                    "sql_connection '%(sql_connection)s'. "
                    "Got error:\n%(err)s") % locals()
            LOG.error(msg)
            raise

        sa_logger = logging.getLogger('sqlalchemy.engine')
        if CONF.debug:
            sa_logger.setLevel(logging.DEBUG)

        if CONF.db_auto_create:
            LOG.info('auto-creating glance registry DB')
            models.register_models(_ENGINE)
            try:
                migration.version_control()
            except exception.DatabaseMigrationError:
                # only arises when the DB exists and is under version control
                pass
        else:
            LOG.info('not auto-creating glance registry DB')
コード例 #5
0
ファイル: test_sqlalchemy.py プロジェクト: ntt-sic/glance
def reset_db(db_api):
    db_models.unregister_models(db_api._ENGINE)
    db_models.register_models(db_api._ENGINE)
コード例 #6
0
 def destroy_fixtures(self):
     # Easiest to just drop the models and re-create them...
     db_models.unregister_models(db_api.get_engine())
     db_models.register_models(db_api.get_engine())
コード例 #7
0
ファイル: utils.py プロジェクト: weiqiLee/glance
 def destroy_fixtures(self):
     db_models.unregister_models(db_api.get_engine())
     db_models.register_models(db_api.get_engine())
コード例 #8
0
ファイル: utils.py プロジェクト: Simplit-openapps/glance
 def destroy_fixtures(self):
     db_models.unregister_models(db_api.get_engine())
     db_models.register_models(db_api.get_engine())
コード例 #9
0
ファイル: test_sqlalchemy.py プロジェクト: bopopescu/devstack
def reset_db(db_api):
    db_models.unregister_models(db_api.get_engine())
    db_models.register_models(db_api.get_engine())
コード例 #10
0
ファイル: test_sqlalchemy.py プロジェクト: afliu/glance
def reset_db(db_api):
    db_models.unregister_models(db_api._ENGINE)
    db_models.register_models(db_api._ENGINE)
コード例 #11
0
ファイル: test_registry_client.py プロジェクト: liuy/glance
 def destroy_fixtures(self):
     # Easiest to just drop the models and re-create them...
     db_models.unregister_models(db_api._ENGINE)
     db_models.register_models(db_api._ENGINE)
コード例 #12
0
ファイル: test_sqlalchemy.py プロジェクト: hmakkapati/glance
def reset_db(db_api):
    db_models.unregister_models(db_api.get_engine())
    db_models.register_models(db_api.get_engine())
コード例 #13
0
ファイル: utils.py プロジェクト: Web5design/glance
 def destroy_fixtures(self):
     db_models.unregister_models(db_api._ENGINE)
     db_models.register_models(db_api._ENGINE)
コード例 #14
0
 def destroy_fixtures(self):
     db_models.unregister_models(db_api._ENGINE)
     db_models.register_models(db_api._ENGINE)
コード例 #15
0
ファイル: test_sqlalchemy.py プロジェクト: Spawno-de/glance
 def reset(self):
     db_models.unregister_models(self.db_api._ENGINE)
     db_models.register_models(self.db_api._ENGINE)
コード例 #16
0
 def reset(self):
     db_models.unregister_models(self.db_api._ENGINE)
     db_models.register_models(self.db_api._ENGINE)