Esempio n. 1
0
    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)
Esempio n. 2
0
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')
Esempio n. 3
0
    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)
Esempio n. 4
0
 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