예제 #1
0
    async def run(self, args):
        srv, method = args.srv_method.split('::')

        ps = [guess_json(p) for p in args.param]

        if args.dispatch_policy == 'random':
            bbox_client.pool.policy = bbox_client.pool.RANDOM

        try:
            await get_cluster().start()

            for i in range(args.ntimes):
                r = await bbox_client.pool.request(srv,
                                                   method,
                                                   *ps,
                                                   retry=args.retry)
                if args.pp:
                    print(json_pp(r))
                else:
                    print(json_to_str(r))
                if (args.stack and r.get('error')
                        and isinstance(r['error'], dict)
                        and r['error'].get('stack')):

                    print('\nerror stack:')
                    print(r['error']['stack'])

                if i >= args.ntimes - 1:
                    break
                await asyncio.sleep(args.interval)
        finally:
            c = get_cluster()
            c.cont = False
            await asyncio.sleep(0.1)
            c.close()
예제 #2
0
async def cluster_info(args):
    cfg = get_ticket()
    info = {
        'etcd': cfg.etcd,
        'prefix': cfg.prefix,
        'boxes': get_cluster().boxes
    }
    print(json_pp(info))
예제 #3
0
async def get_config(args):
    sec_key = args.sec_key
    if '/' in sec_key:
        sec, key = sec_key.split('/')
        r = get_sharedconfig().get_strict(sec, key)
    else:
        r = get_sharedconfig().get_section_strict(sec_key)
    print(json_pp(r))
예제 #4
0
파일: clusterop.py 프로젝트: Freeza91/bbox
async def cluster_info(args) -> None:
    ticket = get_ticket()
    info = {
        'etcd': ticket.etcd,
        'prefix': ticket.prefix,
        'boxes': get_cluster().boxes
        }
    print(json_pp(info))
예제 #5
0
 def dump_json(self) -> str:
     return json_pp(self.sections)