Exemplo n.º 1
0
async def config_ctx(cli_ctx: CLIContext) -> AsyncIterator[SharedConfig]:
    local_config = cli_ctx.local_config
    ctx: Dict[str, Any] = {}
    ctx['config'] = local_config
    # scope_prefix_map is created inside ConfigServer
    shared_config = SharedConfig(
        ctx,
        local_config['etcd']['addr'],
        local_config['etcd']['user'],
        local_config['etcd']['password'],
        local_config['etcd']['namespace'],
    )
    await shared_config.reload()
    raw_redis_config = await shared_config.etcd.get_prefix('config/redis')
    local_config['redis'] = redis_config_iv.check(raw_redis_config)
    redis_image = await aioredis.create_redis(
        local_config['redis']['addr'].as_sockaddr(),
        password=local_config['redis']['password']
        if local_config['redis']['password'] else None,
        timeout=3.0,
        encoding='utf8',
        db=REDIS_IMAGE_DB)
    ctx['redis_image'] = redis_image
    try:
        yield shared_config
    finally:
        redis_image.close()
        await redis_image.wait_closed()
        await shared_config.close()
Exemplo n.º 2
0
async def config_server_ctx(app: web.Application) -> AsyncIterator[None]:
    # populate public interfaces
    app['config_server'] = ConfigServer(app, app['config']['etcd']['addr'],
                                        app['config']['etcd']['user'],
                                        app['config']['etcd']['password'],
                                        app['config']['etcd']['namespace'])

    app['config'].update(await load_shared_config(app['config_server'].etcd))
    app['config']['redis'] = redis_config_iv.check(
        await app['config_server'].etcd.get_prefix('config/redis'))
    _update_public_interface_objs(app)
    yield
    await app['config_server'].close()
Exemplo n.º 3
0
def local_config(test_id, test_db):
    cfg = load_config()
    assert isinstance(cfg, LocalConfig)
    cfg['db']['name'] = test_db
    cfg['manager']['num-proc'] = 1
    cfg['manager']['service-addr'] = HostPortPair('localhost', 29100)
    # In normal setups, this is read from etcd.
    cfg['redis'] = redis_config_iv.check({
        'addr': {
            'host': '127.0.0.1',
            'port': '6379'
        },
    })
    return cfg
Exemplo n.º 4
0
async def config_ctx(cli_ctx):
    config = cli_ctx.config
    ctx = {}
    ctx['config'] = config
    # scope_prefix_map is created inside ConfigServer
    config_server = ConfigServer(ctx, config['etcd']['addr'],
                                 config['etcd']['user'],
                                 config['etcd']['password'],
                                 config['etcd']['namespace'])
    raw_redis_config = await config_server.etcd.get_prefix('config/redis')
    config['redis'] = redis_config_iv.check(raw_redis_config)
    ctx['redis_image'] = await aioredis.create_redis(
        config['redis']['addr'].as_sockaddr(),
        password=config['redis']['password']
        if config['redis']['password'] else None,
        timeout=3.0,
        encoding='utf8',
        db=REDIS_IMAGE_DB)
    try:
        yield config_server
    finally:
        ctx['redis_image'].close()
        await ctx['redis_image'].wait_closed()
        await config_server.close()