コード例 #1
0
    def __init__(self, cfg_manager):
        super(AuthDatabaseGateway, self).__init__(cfg_manager)

        user = cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_USERNAME)
        password = cfg_manager.get_doc_value(
            configuration_doc.WEBLAB_DB_PASSWORD)
        host = self.host
        dbname = self.database_name
        engine = self.engine_name

        if AuthDatabaseGateway.engine is None or cfg_manager.get_doc_value(
                configuration_doc.WEBLAB_DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, user, password, host, dbname)

            if engine == 'sqlite':
                connection_url = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s/%(DATABASE)s" % \
                                { "ENGINE":   engine,
                                  "USER":     user, "PASSWORD": password,
                                  "HOST":     host, "DATABASE": dbname }

                pool = sqlalchemy.pool.QueuePool(getconn,
                                                 pool_size=15,
                                                 max_overflow=20,
                                                 recycle=3600)
            AuthDatabaseGateway.engine = create_engine(connection_url,
                                                       echo=False,
                                                       convert_unicode=True,
                                                       pool=pool)

        self.Session = sessionmaker(bind=self.engine)
コード例 #2
0
ファイル: gateway.py プロジェクト: slok/weblabdeusto
    def __init__(self, cfg_manager):
        super(DatabaseGateway, self).__init__(cfg_manager)

        user     = cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_USERNAME)
        password = cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_PASSWORD)
        host     = self.host
        dbname   = self.database_name
        engine   = self.engine_name

        if DatabaseGateway.engine is None or cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, user, password, host, dbname)

            if engine == 'sqlite':
                connection_url = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s/%(DATABASE)s" % \
                                { "ENGINE":   engine,
                                  "USER":     user, "PASSWORD": password,
                                  "HOST":     host, "DATABASE": dbname  }

                pool = sqlalchemy.pool.QueuePool(getconn, pool_size=15, max_overflow=20, recycle=3600)

            DatabaseGateway.engine = create_engine(connection_url, echo=False, convert_unicode=True, pool = pool)

        self.Session = sessionmaker(bind=self.engine)
コード例 #3
0
ファイル: db.py プロジェクト: slok/weblabdeusto
    def __init__(self, cfg_manager):
        engine   = cfg_manager.get_value(COORDINATOR_DB_ENGINE,  DEFAULT_COORDINATOR_DB_ENGINE)
        username = CoordinationDatabaseManager.username = cfg_manager.get_value(COORDINATOR_DB_USERNAME) # REQUIRED!
        password = CoordinationDatabaseManager.password = cfg_manager.get_value(COORDINATOR_DB_PASSWORD) # REQUIRED!
        host     = CoordinationDatabaseManager.host     = cfg_manager.get_value(COORDINATOR_DB_HOST,    DEFAULT_COORDINATOR_DB_HOST)
        dbname   = CoordinationDatabaseManager.dbname   = cfg_manager.get_value(COORDINATOR_DB_NAME,    DEFAULT_COORDINATOR_DB_NAME)

        if CoordinationDatabaseManager.engine is None or cfg_manager.get_doc_value(WEBLAB_DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, username, password, host, dbname)

            connect_args = {}

            if engine == 'sqlite':
                sqlalchemy_engine_str = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                if dbname == ':memory:':
                    connect_args['check_same_thread'] = False
                    pool = sqlalchemy.pool.StaticPool(getconn)
                else:
                    pool = sqlalchemy.pool.NullPool(getconn)
            else:
                sqlalchemy_engine_str = "%s://%s:%s@%s/%s" % (engine, username, password, host, dbname)

                pool = sqlalchemy.pool.QueuePool(getconn, pool_size=15, max_overflow=20, recycle=3600)

            CoordinationDatabaseManager.engine = sqlalchemy.create_engine(sqlalchemy_engine_str, convert_unicode=True, echo=False, connect_args = connect_args, pool = pool)

            if engine == 'sqlite' and dbname == ':memory:':
                coord_model.load()
                metadata = coord_model.Base.metadata
                metadata.drop_all(self.engine)
                metadata.create_all(self.engine)


        self.session_maker = sessionmaker(bind=self.engine, autoflush = True, autocommit = False)
コード例 #4
0
    def __init__(self, cfg_manager, session_pool_id):
        super(DbLock, self).__init__()
        self.cfg_manager = cfg_manager
        self.pool_id = session_pool_id
        (engine_name, host, dbname, username, password) = self._parse_config()

        DbLock.username = username
        DbLock.password = password
        DbLock.host = host
        DbLock.dbname = dbname

        if DbLock.engine is None:
            getconn = generate_getconn(engine_name, username, password, host,
                                       dbname)

            if engine_name == 'sqlite':
                sqlalchemy_engine_str = 'sqlite:///%s' % get_sqlite_dbname(
                    dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                sqlalchemy_engine_str = "%s://%s:%s@%s/%s" % (
                    engine_name, username, password, host, dbname)
                pool = sqlalchemy.pool.QueuePool(getconn,
                                                 pool_size=15,
                                                 max_overflow=20,
                                                 recycle=3600)

            DbLock.engine = sqlalchemy.create_engine(sqlalchemy_engine_str,
                                                     convert_unicode=True,
                                                     echo=False,
                                                     pool=pool)

        self._session_maker = sessionmaker(bind=self.engine,
                                           autoflush=True,
                                           autocommit=False)
コード例 #5
0
ファイル: db_lock.py プロジェクト: slok/weblabdeusto
    def __init__(self, cfg_manager, session_pool_id):
        super(DbLock, self).__init__()
        self.cfg_manager = cfg_manager
        self.pool_id     = session_pool_id
        (
            engine_name,
            host,
            dbname,
            username,
            password
        ) = self._parse_config()

        DbLock.username = username
        DbLock.password = password
        DbLock.host     = host
        DbLock.dbname   = dbname

        if DbLock.engine is None:
            getconn = generate_getconn(engine_name, username, password, host, dbname)

            if engine_name == 'sqlite':
                sqlalchemy_engine_str = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                sqlalchemy_engine_str = "%s://%s:%s@%s/%s" % (engine_name, username, password, host, dbname)
                pool = sqlalchemy.pool.QueuePool(getconn, pool_size=15, max_overflow=20, recycle=3600)

            DbLock.engine = sqlalchemy.create_engine(sqlalchemy_engine_str, convert_unicode=True, echo=False, pool = pool)

        self._session_maker = sessionmaker(bind=self.engine, autoflush = True, autocommit = False)
コード例 #6
0
    def __init__(self, engine, host, dbname, user, password):
        super(DbGateway, self).__init__()
        getconn = generate_getconn(engine, user, password, host, dbname)

        if engine == 'sqlite':
            connection_url = 'sqlite:///%s' % get_sqlite_dbname(dbname)
            pool = sqlalchemy.pool.NullPool(getconn)
        else:
            connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s/%(DATABASE)s" % \
                            { "ENGINE":   engine,
                              "USER":     user, "PASSWORD": password,
                              "HOST":     host, "DATABASE": dbname  }

            pool = sqlalchemy.pool.QueuePool(getconn,
                                             pool_size=15,
                                             max_overflow=20,
                                             recycle=3600)

        engine = create_engine(connection_url,
                               echo=False,
                               convert_unicode=True,
                               pool=pool)

        self.Session = sessionmaker(bind=engine)
        self.session = self.Session()
コード例 #7
0
    def __init__(self, cfg_manager):
        engine = cfg_manager.get_doc_value(
            configuration_doc.COORDINATOR_DB_ENGINE)
        username = CoordinationDatabaseManager.username = cfg_manager.get_doc_value(
            configuration_doc.COORDINATOR_DB_USERNAME)
        password = CoordinationDatabaseManager.password = cfg_manager.get_doc_value(
            configuration_doc.COORDINATOR_DB_PASSWORD)
        host = CoordinationDatabaseManager.host = cfg_manager.get_doc_value(
            configuration_doc.COORDINATOR_DB_HOST)
        port = CoordinationDatabaseManager.port = cfg_manager.get_doc_value(
            configuration_doc.COORDINATOR_DB_PORT)
        dbname = CoordinationDatabaseManager.dbname = cfg_manager.get_doc_value(
            configuration_doc.COORDINATOR_DB_NAME)

        if CoordinationDatabaseManager.engine is None or cfg_manager.get_doc_value(
                configuration_doc.DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, username, password, host, port,
                                       dbname)

            connect_args = {}

            if engine == 'sqlite':
                sqlalchemy_engine_str = 'sqlite:///%s' % get_sqlite_dbname(
                    dbname)
                if dbname == ':memory:':
                    connect_args['check_same_thread'] = False
                    pool = sqlalchemy.pool.StaticPool(getconn)
                else:
                    pool = sqlalchemy.pool.NullPool(getconn)
            else:
                if port is None:
                    port_str = ''
                else:
                    port_str = ':%s' % port
                sqlalchemy_engine_str = "%s://%s:%s@%s%s/%s" % (
                    engine, username, password, host, port_str, dbname)

                pool = sqlalchemy.pool.QueuePool(getconn,
                                                 pool_size=15,
                                                 max_overflow=20,
                                                 recycle=3600)

            CoordinationDatabaseManager.engine = sqlalchemy.create_engine(
                sqlalchemy_engine_str,
                convert_unicode=True,
                echo=False,
                connect_args=connect_args,
                pool=pool)

            if engine == 'sqlite' and dbname == ':memory:':
                coord_model.load()
                metadata = coord_model.Base.metadata
                metadata.drop_all(self.engine)
                metadata.create_all(self.engine)

        self.session_maker = sessionmaker(bind=self.engine,
                                          autoflush=True,
                                          autocommit=False)
コード例 #8
0
    def __init__(self, cfg_manager, session_pool_id, timeout):
        super(SessionSqlalchemyGateway, self).__init__()

        self.session_pool_id = session_pool_id
        self.timeout = timeout
        self.cfg_manager = cfg_manager

        (engine_name, host, port, dbname, username,
         password) = self._parse_config()

        SessionSqlalchemyGateway.username = username
        SessionSqlalchemyGateway.password = password
        SessionSqlalchemyGateway.host = host
        SessionSqlalchemyGateway.port = port
        SessionSqlalchemyGateway.dbname = dbname

        self._generator = SessionGenerator.SessionGenerator()
        self._serializer = SessionSerializer.SessionSerializer()

        self._lock = DbLock.DbLock(cfg_manager, session_pool_id)

        if SessionSqlalchemyGateway.engine is None:
            getconn = generate_getconn(engine_name, username, password, host,
                                       port, dbname)

            if engine_name == 'sqlite':
                sqlalchemy_engine_str = 'sqlite:///%s' % get_sqlite_dbname(
                    dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                if port is None:
                    port_str = ''
                else:
                    port_str = ':%s' % port
                sqlalchemy_engine_str = "%s://%s:%s@%s%s/%s" % (
                    engine_name, username, password, host, port_str, dbname)
                pool = sqlalchemy.pool.QueuePool(getconn,
                                                 pool_size=15,
                                                 max_overflow=20,
                                                 recycle=3600)

            SessionSqlalchemyGateway.engine = sqlalchemy.create_engine(
                sqlalchemy_engine_str,
                convert_unicode=True,
                echo=False,
                pool=pool)

        self._session_maker = sessionmaker(bind=self.engine,
                                           autoflush=True,
                                           autocommit=False)
コード例 #9
0
ファイル: __init__.py プロジェクト: victorroli/weblabdeusto
    def initialize(self, cfg_manager):
        try:
            host = cfg_manager.get_doc_value(configuration_doc.DB_HOST)
            port = cfg_manager.get_doc_value(configuration_doc.DB_PORT)
            dbname = cfg_manager.get_doc_value(configuration_doc.DB_DATABASE)
            engine = cfg_manager.get_doc_value(configuration_doc.DB_ENGINE)
            pool_size = cfg_manager.get_doc_value(
                configuration_doc.DB_POOL_SIZE)
            max_overflow = cfg_manager.get_doc_value(
                configuration_doc.DB_MAX_OVERFLOW)
            user = cfg_manager.get_doc_value(configuration_doc.DB_USERNAME)
            password = cfg_manager.get_doc_value(configuration_doc.DB_PASSWORD)
        except CfgErrors.KeyNotFoundError as knfe:
            raise DbMisconfiguredError(
                "Configuration manager didn't provide values for at least one parameter: %s"
                % knfe, knfe)

        if self.engine is None or cfg_manager.get_doc_value(
                configuration_doc.DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, user, password, host, port,
                                       dbname)

            if engine == 'sqlite':
                connection_url = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                if port is None:
                    port_str = ''
                else:
                    port_str = ':%s' % port
                connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s%(PORT)s/%(DATABASE)s" % \
                                { "ENGINE":   engine, 'PORT' : port_str,
                                  "USER":     user, "PASSWORD": password,
                                  "HOST":     host, "DATABASE": dbname  }

                pool = sqlalchemy.pool.QueuePool(getconn,
                                                 pool_size=pool_size,
                                                 max_overflow=max_overflow,
                                                 recycle=3600)

            self.engine = create_engine(connection_url,
                                        echo=False,
                                        convert_unicode=True,
                                        pool=pool)

        self.Session = sessionmaker(bind=self.engine)
        return self.Session, self.engine
コード例 #10
0
    def __init__(self, cfg_manager, session_pool_id, timeout):
        super(SessionSqlalchemyGateway, self).__init__()

        self.session_pool_id = session_pool_id
        self.timeout         = timeout
        self.cfg_manager     = cfg_manager

        (
            engine_name,
            host,
            port,
            dbname,
            username,
            password
        ) = self._parse_config()

        SessionSqlalchemyGateway.username = username
        SessionSqlalchemyGateway.password = password
        SessionSqlalchemyGateway.host     = host
        SessionSqlalchemyGateway.port     = port
        SessionSqlalchemyGateway.dbname = dbname

        self._generator  = SessionGenerator.SessionGenerator()
        self._serializer = SessionSerializer.SessionSerializer()

        self._lock       = DbLock.DbLock(cfg_manager, session_pool_id)

        if SessionSqlalchemyGateway.engine is None:
            getconn = generate_getconn(engine_name, username, password, host, port, dbname)

            if engine_name == 'sqlite':
                sqlalchemy_engine_str = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                if port is None:
                    port_str = ''
                else:
                    port_str = ':%s' % port
                sqlalchemy_engine_str = "%s://%s:%s@%s%s/%s" % (engine_name, username, password, host, port_str, dbname)
                pool = sqlalchemy.pool.QueuePool(getconn, pool_size=15, max_overflow=20, recycle=3600)

            SessionSqlalchemyGateway.engine = sqlalchemy.create_engine(sqlalchemy_engine_str, convert_unicode=True, echo=False, pool = pool)

        self._session_maker = sessionmaker(bind=self.engine, autoflush = True, autocommit = False)
コード例 #11
0
ファイル: db.py プロジェクト: slok/weblabdeusto
    def __init__(self, engine, host, dbname, user, password):
        super(DbGateway, self).__init__()
        getconn = generate_getconn(engine, user, password, host, dbname)

        if engine == 'sqlite':
            connection_url = 'sqlite:///%s' % get_sqlite_dbname(dbname)
            pool = sqlalchemy.pool.NullPool(getconn)
        else:
            connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s/%(DATABASE)s" % \
                            { "ENGINE":   engine,
                              "USER":     user, "PASSWORD": password,
                              "HOST":     host, "DATABASE": dbname  }

            pool = sqlalchemy.pool.QueuePool(getconn, pool_size=15, max_overflow=20, recycle=3600)

        engine = create_engine(connection_url, echo=False, convert_unicode=True, pool = pool)

        self.Session = sessionmaker(bind=engine)
        self.session = self.Session()
コード例 #12
0
ファイル: __init__.py プロジェクト: zstars/weblabdeusto
    def initialize(self, cfg_manager):
        try:
            host = cfg_manager.get_doc_value(configuration_doc.DB_HOST)
            port = cfg_manager.get_doc_value(configuration_doc.DB_PORT)
            dbname = cfg_manager.get_doc_value(configuration_doc.DB_DATABASE)
            engine = cfg_manager.get_doc_value(configuration_doc.DB_ENGINE)
            pool_size = cfg_manager.get_doc_value(configuration_doc.DB_POOL_SIZE)
            max_overflow = cfg_manager.get_doc_value(configuration_doc.DB_MAX_OVERFLOW)
            user = cfg_manager.get_doc_value(configuration_doc.DB_USERNAME)
            password = cfg_manager.get_doc_value(configuration_doc.DB_PASSWORD)
        except CfgErrors.KeyNotFoundError as knfe:
            raise DbMisconfiguredError(
                "Configuration manager didn't provide values for at least one parameter: %s" % knfe, knfe
            )

        if self.engine is None or cfg_manager.get_doc_value(configuration_doc.DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, user, password, host, port, dbname)

            if engine == "sqlite":
                connection_url = "sqlite:///%s" % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                if port is None:
                    port_str = ""
                else:
                    port_str = ":%s" % port
                connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s%(PORT)s/%(DATABASE)s" % {
                    "ENGINE": engine,
                    "PORT": port_str,
                    "USER": user,
                    "PASSWORD": password,
                    "HOST": host,
                    "DATABASE": dbname,
                }

                pool = sqlalchemy.pool.QueuePool(getconn, pool_size=pool_size, max_overflow=max_overflow, recycle=3600)

            self.engine = create_engine(connection_url, echo=False, convert_unicode=True, pool=pool)

        self.Session = sessionmaker(bind=self.engine)
        return self.Session, self.engine
コード例 #13
0
ファイル: gateway.py プロジェクト: arobles1980/weblabdeusto
    def __init__(self, cfg_manager):
        self.cfg_manager = cfg_manager
        try:
            host          = cfg_manager.get_doc_value(configuration_doc.DB_HOST)
            port          = cfg_manager.get_doc_value(configuration_doc.DB_PORT)
            dbname        = cfg_manager.get_doc_value(configuration_doc.DB_DATABASE)
            engine        = cfg_manager.get_doc_value(configuration_doc.DB_ENGINE)
            user          = cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_USERNAME)
            password      = cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_PASSWORD)
        except CfgErrors.KeyNotFoundError as knfe:
            raise DbErrors.DbMisconfiguredError(
                    "Configuration manager didn't provide values for at least one parameter: %s" % knfe,
                    knfe
                )

        if AbstractDatabaseGateway.engine is None or cfg_manager.get_doc_value(configuration_doc.WEBLAB_DB_FORCE_ENGINE_CREATION):
            getconn = generate_getconn(engine, user, password, host, port, dbname)

            if engine == 'sqlite':
                connection_url = 'sqlite:///%s' % get_sqlite_dbname(dbname)
                pool = sqlalchemy.pool.NullPool(getconn)
            else:
                if port is None:
                    port_str = ''
                else:
                    port_str = ':%s' % port
                connection_url = "%(ENGINE)s://%(USER)s:%(PASSWORD)s@%(HOST)s%(PORT)s/%(DATABASE)s" % \
                                { "ENGINE":   engine, 'PORT' : port_str,
                                  "USER":     user, "PASSWORD": password,
                                  "HOST":     host, "DATABASE": dbname  }

                pool = sqlalchemy.pool.QueuePool(getconn, pool_size=15, max_overflow=20, recycle=3600)

            AbstractDatabaseGateway.engine = create_engine(connection_url, echo=False, convert_unicode=True, pool = pool)

        self.Session = sessionmaker(bind=self.engine)