예제 #1
0
 def test_get_session_invalidated(self):
     # If clear the global engine, a new engine is used for get_session().
     base = sql.Base()
     session1 = base.get_session()
     sql.set_global_engine(None)
     session2 = base.get_session()
     self.assertIsNot(session1.bind, session2.bind)
예제 #2
0
 def test_get_engine_not_global(self):
     # If call get_engine() twice, once with allow_global_engine=True
     # and once with allow_global_engine=False, get different engines.
     base = sql.Base()
     engine1 = base.get_engine()
     engine2 = base.get_engine(allow_global_engine=False)
     self.assertIsNot(engine1, engine2)
예제 #3
0
 def test_get_engine_global(self):
     # If call get_engine() twice, get the same global engine.
     base = sql.Base()
     engine1 = base.get_engine()
     self.assertIsNotNone(engine1)
     engine2 = base.get_engine()
     self.assertIs(engine1, engine2)
예제 #4
0
    def test_get_session(self):
        # autocommit and expire_on_commit flags to get_session() are passed on
        # to the session created.

        base = sql.Base()
        session = base.get_session(autocommit=False, expire_on_commit=True)

        self.assertFalse(session.autocommit)
        self.assertTrue(session.expire_on_commit)
예제 #5
0
    def setUp(self):
        super(SqlUpgradeTests, self).setUp()
        self.config([
            test.etcdir('keystone.conf.sample'),
            test.testsdir('test_overrides.conf'),
            test.testsdir('backend_sql.conf')
        ])

        # create and share a single sqlalchemy engine for testing
        self.engine = sql.Base().get_engine(allow_global_engine=False)
        self.metadata = sqlalchemy.MetaData()

        # populate the engine with tables & fixtures
        self.metadata.bind = self.engine
        self.repo_path = migration._find_migrate_repo()
        self.schema = versioning_api.ControlledSchema.create(
            self.engine, self.repo_path, 0)
예제 #6
0
    def setUp(self):
        super(SqlUpgradeTests, self).setUp()

        self.config(self.config_files())
        self.base = sql.Base()

        # create and share a single sqlalchemy engine for testing
        self.engine = self.base.get_engine(allow_global_engine=False)
        self.Session = self.base.get_sessionmaker(engine=self.engine,
                                                  autocommit=False)

        self.initialize_sql()
        self.repo_path = migration._find_migrate_repo()
        self.schema = versioning_api.ControlledSchema.create(
            self.engine, self.repo_path, 0)

        # auto-detect the highest available schema version in the migrate_repo
        self.max_version = self.schema.repository.version().version
예제 #7
0
 def __init__(self, application):
     self.application = application
     self.session = sql.Base().get_engine()
예제 #8
0
    def GET(self, req):
        """Returns a 200 response with "OK" in the body."""
        body = "OK"
        status = "200 OK"

        if self.__check_manual_failover__() == 1:
            body = "MANUAL FAILOVER"
            status = "420 manual_failover"
        elif self.db_check() == -1:
            body = "DATABASE FAILED"
            status = "419 db_fail"

        return Response(request=req,
                        body=body,
                        status=status,
                        content_type="text/plain")

    def process_request(self, request):
        LOG.debug('path = %r' % request.path)
        if request.path == '/healthcheck':
            return self.GET(request)


if __name__ == '__main__':
    db_checker = sql.Base()
    engine = db_checker.get_engine()
    print "Engine = %r" % engine
    print "Driver = %s, name = %s" % (engine.driver, engine.name)
    ret = engine.execute("select date('now')").fetchall()
    print "Date : %s" % ret