def test_two_client_route_parallel(self): fa1 = set_flow_parser().parse_args( ['--optimize-level', str(FlowOptimizeLevel.NONE)]) f1 = Flow(fa1).add(uses='_forward', parallel=3) f2 = Flow(optimize_level=FlowOptimizeLevel.IGNORE_GATEWAY).add( uses='_forward', parallel=3) def start_client(fl): fl.index(input_fn=random_docs(10)) with f1: self.assertEqual(f1.num_peas, 6) t1 = mp.Process(target=start_client, args=(f1, )) t1.daemon = True t2 = mp.Process(target=start_client, args=(f1, )) t2.daemon = True t1.start() t2.start() time.sleep(5) with f2: # no optimization can be made because we ignored the gateway self.assertEqual(f2.num_peas, 6) t1 = mp.Process(target=start_client, args=(f2, )) t1.daemon = True t2 = mp.Process(target=start_client, args=(f2, )) t2.daemon = True t1.start() t2.start() time.sleep(5)
def _update_autocomplete(): from jina.main.parser import get_main_parser, set_pea_parser, \ set_hw_parser, set_flow_parser, set_pod_parser, \ set_check_parser, set_gateway_parser, set_ping_parser, set_client_cli_parser, set_logger_parser def _gaa(parser): _compl = [] for v in parser._actions: if v.option_strings: _compl.extend(v.option_strings) elif v.choices: _compl.extend(v.choices) # filer out single dash, as they serve as abbrev _compl = [k for k in _compl if (not k.startswith('-') or k.startswith('--'))] return _compl compl = { 'commands': _gaa(get_main_parser()), 'completions': { 'pea': _gaa(set_pea_parser()), 'hello-world': _gaa(set_hw_parser()), 'flow': _gaa(set_flow_parser()), 'pod': _gaa(set_pod_parser()), 'check': _gaa(set_check_parser()), 'gateway': _gaa(set_gateway_parser()), 'ping': _gaa(set_ping_parser()), 'client': _gaa(set_client_cli_parser()), 'log': _gaa(set_logger_parser()) } } with open(__file__, 'a') as fp: fp.write(f'\nac_table = {compl}\n')
def test_two_client_route_replicas(self): fa1 = set_flow_parser().parse_args( ['--optimize-level', str(FlowOptimizeLevel.NONE)]) f1 = Flow(fa1).add(yaml_path='_forward', replicas=3) f2 = Flow(optimize_level=FlowOptimizeLevel.IGNORE_GATEWAY).add( yaml_path='_forward', replicas=3) # f3 = Flow(optimize_level=FlowOptimizeLevel.FULL).add(yaml_path='_forward', replicas=3) def start_client(fl): fl.index(input_fn=random_docs(10)) with f1: self.assertEqual(f1.num_peas, 6) t1 = mp.Process(target=start_client, args=(f1, )) t1.daemon = True t2 = mp.Process(target=start_client, args=(f1, )) t2.daemon = True t1.start() t2.start() time.sleep(5) with f2: self.assertEqual(f2.num_peas, 6) t1 = mp.Process(target=start_client, args=(f2, )) t1.daemon = True t2 = mp.Process(target=start_client, args=(f2, )) t2.daemon = True t1.start() t2.start() time.sleep(5)
def test_load_flow_from_cli(self): a = set_flow_parser().parse_args(['--uses', 'yaml/test-flow-port.yml']) f = Flow.load_config(a.uses) with f: assert f.port_expose == 12345