def __init__(self, url):
     # Set max_retries to 0, since oslo.db in certain cases may attempt
     # to retry making the db connection retried max_retries ^ 2 times
     # in failure case and db reconnection has already been implemented
     # in storage.__init__.get_connection_from_config function
     cfg.CONF.set_override('max_retries', 0, group='database')
     self._engine_facade = db_session.EngineFacade(
         url, **dict(cfg.CONF.database.items()))
Ejemplo n.º 2
0
def _create_facade_lazily():
    global _FACADE

    if _FACADE is None:
        _FACADE = db_session.EngineFacade(CONF.baremetal.sql_connection,
                                          **dict(CONF.database.iteritems()))

    return _FACADE
Ejemplo n.º 3
0
 def test_drop_dup_entries_in_file_conn(self):
     table_name = "__test_tmp_table__"
     tmp_db_file = self.create_tempfiles([['name', '']], ext='.sql')[0]
     in_file_engine = session.EngineFacade('sqlite:///%s' %
                                           tmp_db_file).get_engine()
     meta = MetaData()
     meta.bind = in_file_engine
     test_table, values = self._populate_db_for_drop_duplicate_entries(
         in_file_engine, meta, table_name)
     utils.drop_old_duplicate_entries_from_table(in_file_engine, table_name,
                                                 False, 'b', 'c')
Ejemplo n.º 4
0
def _get_facade():
    global _facade

    if not _facade:
        _facade = db_session.EngineFacade(cfg.CONF.database.connection,
                                          sqlite_fk=True,
                                          autocommit=False,
                                          **dict(
                                              cfg.CONF.database.iteritems()))

    return _facade
Ejemplo n.º 5
0
def _create_facade_lazily():
    global _LOCK
    with _LOCK:
        global _FACADE
        if _FACADE is None:
            _FACADE = db_session.EngineFacade(
                CONF.database.connection, **dict(CONF.database.iteritems()))

            if CONF.profiler.profiler_enabled:
                if CONF.profiler.trace_sqlalchemy:
                    osprofiler.sqlalchemy.add_tracing(sqlalchemy,
                                                      _FACADE.get_engine(),
                                                      "db")

        return _FACADE
Ejemplo n.º 6
0
    def test_slave_connection_string_not_provided(self):
        master_path = 'sqlite:///' + self.create_tempfiles([('db.master', '')],
                                                           ext='')[0]

        facade = session.EngineFacade(sql_connection=master_path)

        master = facade.get_engine()
        slave = facade.get_engine(use_slave=True)
        self.assertIs(master, slave)
        self.assertEqual(master_path, str(master.url))

        master_session = facade.get_session()
        self.assertEqual(master_path, str(master_session.bind.url))
        slave_session = facade.get_session(use_slave=True)
        self.assertEqual(master_path, str(slave_session.bind.url))
Ejemplo n.º 7
0
    def test_slave_connection(self):
        paths = self.create_tempfiles([('db.master', ''), ('db.slave', '')],
                                      ext='')
        master_path = 'sqlite:///' + paths[0]
        slave_path = 'sqlite:///' + paths[1]

        facade = session.EngineFacade(sql_connection=master_path,
                                      slave_connection=slave_path)

        master = facade.get_engine()
        self.assertEqual(master_path, str(master.url))
        slave = facade.get_engine(use_slave=True)
        self.assertEqual(slave_path, str(slave.url))

        master_session = facade.get_session()
        self.assertEqual(master_path, str(master_session.bind.url))
        slave_session = facade.get_session(use_slave=True)
        self.assertEqual(slave_path, str(slave_session.bind.url))
Ejemplo n.º 8
0
 def __init__(self, url):
     self._engine_facade = db_session.EngineFacade(
         url, **dict(cfg.CONF.database.items()))
Ejemplo n.º 9
0
    def setUp(self):
        super(EngineFacadeTestCase, self).setUp()

        self.facade = session.EngineFacade('sqlite://')
Ejemplo n.º 10
0
 def get_facade_from_url(self, url):
     return db_session.EngineFacade(url, **dict(cfg.CONF.database.items()))