def __init__(self, name, config, config_no_sensitive): self.logger = getLogger(self.__class__.__name__) self.name = name self.config = config self.engine_name = config['engine'] # self.engine.name is 'mysql' while 'self.engine_name' is mysql+pymysql # Safe for printing out to logs, any sensitive data has been shadowed self.config_no_sensitive = config_no_sensitive _extra = {} # MySQL only if self.engine_name.startswith('mysql'): _extra['pool_recycle'] = 600 # Postgres-only elif self.engine_name.startswith('postgres'): _extra['connect_args'] = {'application_name': get_component_name()} extra = self.config.get('extra') # Optional, hence .get _extra.update(parse_extra_into_dict(extra)) # SQLite has no pools if self.engine_name != 'sqlite': _extra['pool_size'] = int(config.get('pool_size', 1)) engine_url = get_engine_url(config) self.engine = create_engine(engine_url, **_extra) event.listen(self.engine, 'checkin', self.on_checkin) event.listen(self.engine, 'checkout', self.on_checkout) event.listen(self.engine, 'connect', self.on_connect) event.listen(self.engine, 'first_connect', self.on_first_connect)
def create_pool(crypto_manager, engine_params): engine_params = copy.deepcopy(engine_params) if engine_params['engine'] != 'sqlite': engine_params['password'] = str(crypto_manager.decrypt(engine_params['password'])) engine_params['extra']['pool_size'] = engine_params.pop('pool_size') engine = create_engine(get_engine_url(engine_params), **engine_params['extra']) engine.execute(ping_queries[engine_params['engine']]) Session = sessionmaker() Session.configure(bind=engine) session = Session() return session
def create_pool(crypto_manager, engine_params): engine_params = copy.deepcopy(engine_params) if engine_params['engine'] != 'sqlite': engine_params['password'] = str( crypto_manager.decrypt(engine_params['password'])) engine_params['extra']['pool_size'] = engine_params.pop('pool_size') engine = create_engine(get_engine_url(engine_params), **engine_params['extra']) engine.execute(ping_queries[engine_params['engine']]) Session = sessionmaker() Session.configure(bind=engine) session = Session() return session
def __init__(self, name, config, config_no_sensitive): self.logger = getLogger(self.__class__.__name__) self.name = name self.config = config self.engine_name = config[ 'engine'] # self.engine.name is 'mysql' while 'self.engine_name' is mysql+pymysql # Safe for printing out to logs, any sensitive data has been shadowed self.config_no_sensitive = config_no_sensitive _extra = {} # MySQL only if self.engine_name.startswith('mysql'): _extra['pool_recycle'] = 600 # Postgres-only elif self.engine_name.startswith('postgres'): _extra['connect_args'] = {'application_name': get_component_name()} extra = self.config.get('extra') # Optional, hence .get _extra.update(parse_extra_into_dict(extra)) # SQLite has no pools if self.engine_name != 'sqlite': _extra['pool_size'] = int(config.get('pool_size', 1)) if _extra['pool_size'] == 0: _extra['poolclass'] = NullPool engine_url = get_engine_url(config) self.engine = create_engine(engine_url, **_extra) event.listen(self.engine, 'checkin', self.on_checkin) event.listen(self.engine, 'checkout', self.on_checkout) event.listen(self.engine, 'connect', self.on_connect) event.listen(self.engine, 'first_connect', self.on_first_connect)
def _get_engine(self, args): connect_args = {'application_name':util.get_component_name('enmasse')} if args.odb_type == 'postgresql' else {} return sqlalchemy.create_engine(odb_util.get_engine_url(args), connect_args=connect_args)
def _get_engine(self, args): connect_args = { 'application_name': util.get_component_name('enmasse') } if args.odb_type == 'postgresql' else {} return sqlalchemy.create_engine(odb_util.get_engine_url(args), connect_args=connect_args)
db_data = DATABASES['default'] db_data['ENGINE'] = 'django.db.backends.' + django_sqlalchemy_engine[db_type] for name in('ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT'): globals()['DATABASE_{}'.format(name)] = DATABASES['default'][name] db_data['db_type'] = db_type # Crypto ssl_key_file = os.path.abspath(os.path.join(config_dir, SSL_KEY_FILE)) ssl_cert_file = os.path.abspath(os.path.join(config_dir, SSL_CERT_FILE)) ssl_ca_certs = os.path.abspath(os.path.join(config_dir, SSL_CA_CERTS)) # SQLAlchemy setup SASession = scoped_session(sessionmaker()) engine = create_engine(get_engine_url(db_data)) SASession.configure(bind=engine) TEMPLATE_DEBUG = True else: ADMIN_INVOKE_NAME = 'dummy' ADMIN_INVOKE_PASSWORD = '******' DATABASES = {} DATABASES['default'] = {} DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3' ssl_key_file = 'dummy' ssl_cert_file = 'dummy' ssl_ca_certs = 'dummy' os.environ['DJANGO_SETTINGS_MODULE'] = 'zato.admin.settings'
db_data[ 'ENGINE'] = 'django.db.backends.' + django_sqlalchemy_engine[db_type] for name in ('ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT'): globals()['DATABASE_{}'.format(name)] = DATABASES['default'][name] db_data['db_type'] = db_type # Crypto ssl_key_file = os.path.abspath(os.path.join(config_dir, SSL_KEY_FILE)) ssl_cert_file = os.path.abspath(os.path.join(config_dir, SSL_CERT_FILE)) ssl_ca_certs = os.path.abspath(os.path.join(config_dir, SSL_CA_CERTS)) # SQLAlchemy setup SASession = scoped_session(sessionmaker()) engine = create_engine(get_engine_url(db_data)) SASession.configure(bind=engine) TEMPLATE_DEBUG = True else: ADMIN_INVOKE_NAME = 'dummy' ADMIN_INVOKE_PASSWORD = '******' DATABASES = {} DATABASES['default'] = {} DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3' ssl_key_file = 'dummy' ssl_cert_file = 'dummy' ssl_ca_certs = 'dummy' os.environ['DJANGO_SETTINGS_MODULE'] = 'zato.admin.settings'
db_data = DATABASES['default'] db_data['ENGINE'] = 'django.db.backends.' + django_sqlalchemy_engine[db_type] for name in('ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT'): globals()['DATABASE_{}'.format(name)] = DATABASES['default'][name] db_data['db_type'] = db_type # Crypto ssl_key_file = os.path.abspath(os.path.join(config_dir, SSL_KEY_FILE)) ssl_cert_file = os.path.abspath(os.path.join(config_dir, SSL_CERT_FILE)) ssl_ca_certs = os.path.abspath(os.path.join(config_dir, SSL_CA_CERTS)) # SQLAlchemy setup SASession = scoped_session(sessionmaker()) engine = create_engine(get_engine_url(db_data), **{'pool_recycle':600} if db_data['db_type'] == 'mysql' else {}) SASession.configure(bind=engine) TEMPLATE_DEBUG = True else: ADMIN_INVOKE_NAME = 'dummy' ADMIN_INVOKE_PASSWORD = '******' DATABASES = {} DATABASES['default'] = {} DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3' ssl_key_file = 'dummy' ssl_cert_file = 'dummy' ssl_ca_certs = 'dummy' os.environ['DJANGO_SETTINGS_MODULE'] = 'zato.admin.settings'
def get_engine(args): return sqlalchemy.create_engine(get_engine_url(args))
'ENGINE'] = 'django.db.backends.' + django_sqlalchemy_engine[db_type] for name in ('ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT'): globals()['DATABASE_{}'.format(name)] = DATABASES['default'][name] db_data['db_type'] = db_type # Crypto ssl_key_file = os.path.abspath(os.path.join(config_dir, SSL_KEY_FILE)) ssl_cert_file = os.path.abspath(os.path.join(config_dir, SSL_CERT_FILE)) ssl_ca_certs = os.path.abspath(os.path.join(config_dir, SSL_CA_CERTS)) # SQLAlchemy setup SASession = scoped_session(sessionmaker()) engine = create_engine( get_engine_url(db_data), **{'pool_recycle': 600} if db_data['db_type'] == 'mysql' else {}) SASession.configure(bind=engine) TEMPLATE_DEBUG = True else: ADMIN_INVOKE_NAME = 'dummy' ADMIN_INVOKE_PASSWORD = '******' DATABASES = {} DATABASES['default'] = {} DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3' ssl_key_file = 'dummy' ssl_cert_file = 'dummy' ssl_ca_certs = 'dummy'