__init__.py 1.5 KB
Newer Older
P
peng.xu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
import logging
from mishards import settings
logger = logging.getLogger()

from mishards.db_base import DB
db = DB()

from mishards.server import Server
grpc_server = Server()


def create_app(testing_config=None):
    config = testing_config if testing_config else settings.DefaultConfig
    db.init_db(uri=config.SQLALCHEMY_DATABASE_URI, echo=config.SQL_ECHO)

    from mishards.connections import ConnectionMgr
    connect_mgr = ConnectionMgr()

P
peng.xu 已提交
19 20 21
    from discovery.factory import DiscoveryFactory
    discover = DiscoveryFactory(config.DISCOVERY_PLUGIN_PATH).create(config.DISCOVERY_CLASS_NAME,
                                                                     conn_mgr=connect_mgr)
P
peng.xu 已提交
22 23

    from mishards.grpc_utils import GrpcSpanDecorator
P
peng.xu 已提交
24
    from tracer.factory import TracerFactory
P
peng.xu 已提交
25
    tracer = TracerFactory(config.TRACER_PLUGIN_PATH).create(config.TRACER_CLASS_NAME,
P
peng.xu 已提交
26 27
                                                             plugin_config=settings.TracingConfig,
                                                             span_decorator=GrpcSpanDecorator())
P
peng.xu 已提交
28

P
peng.xu 已提交
29 30 31
    from mishards.router.factory import RouterFactory
    router = RouterFactory(config.ROUTER_PLUGIN_PATH).create(config.ROUTER_CLASS_NAME,
                                                             conn_mgr=connect_mgr)
P
peng.xu 已提交
32

P
peng.xu 已提交
33 34 35 36
    grpc_server.init_app(conn_mgr=connect_mgr,
                         tracer=tracer,
                         router=router,
                         discover=discover)
P
peng.xu 已提交
37 38 39 40

    from mishards import exception_handlers

    return grpc_server