Ejemplo n.º 1
0
def ok() -> None:
    import pathlib
    from egoist.generators.filekit import runtime
    from egoist.internal.netutil import find_free_port
    from discovery import get_discovery
    import util

    sentinel = util.create_sentinel_file()
    server_py = pathlib.Path(__file__).absolute().with_name("server.py")
    port = find_free_port()

    get_discovery().register("HELLO", url=f"http://127.0.0.1:{port}")

    argv = [
        sys.executable,
        server_py,
        "--port",
        str(port),
        "--host",
        "127.0.0.1",
        "--sentinel",
        sentinel,
    ]

    with util.ConnectedProcess().spawn(argv, sentinel=sentinel):
        import requests

        url = get_discovery().lookup("HELLO")
        res = requests.get(url)
        res.raise_for_status()

        with runtime.create_file() as wf:
            print(res.json(), file=wf)
Ejemplo n.º 2
0
    def _register():
        from discovery import get_discovery

        port = None

        if app.registry.dry_run:
            logger.info("dry run, %s skipped", NAME)
            get_discovery().register("gofmtrpc",
                                     url=f"http://127.0.0.1:{port}")
            return

        from egoist.internal.netutil import find_free_port
        from util import spawn_with_connection

        port = find_free_port()
        get_discovery().register("gofmtrpc", url=f"http://127.0.0.1:{port}")

        argv = ["gofmtrpc", "-addr", f":{port}"]
        p, _ = spawn_with_connection(argv, sentinel_option="-sentinel")

        import atexit

        def _shutdown():
            logger.info("terminate gofmtrpc")
            with p:
                p.terminate()

        atexit.register(_shutdown)
Ejemplo n.º 3
0
    def _register():
        import shutil
        from egoist.internal.netutil import find_free_port
        from discovery import get_discovery
        import util

        sentinel = util.create_sentinel_file()
        port = find_free_port()

        get_discovery().register("gofmtrpc", url=f"http://127.0.0.1:{port}")

        assert shutil.which("gofmtrpc")
        argv = [
            "gofmtrpc",
            "-addr",
            f":{port}",
            "-sentinel",
            sentinel,
        ]
        p = util.ConnectedProcess().spawn(argv, sentinel=sentinel)
        import atexit

        def _shutdown():
            logger.info("terminate gofmtrpc")
            with p:
                p.terminate()

        atexit.register(_shutdown)
Ejemplo n.º 4
0
        def _register():
            nonlocal host
            nonlocal port

            import shlex
            import atexit
            from discovery import get_discovery
            from rpcutil import find_free_port

            kwargs = {k: fn(app) for k, fn in (params or {}).items()}
            if port is None:
                port = kwargs.get("port") or find_free_port()
            if "host" in kwargs:
                host = kwargs.get["host"]

            argv = shlex.split(fmt.format(**kwargs))
            url = urlfmt.format(host=host, port=port)

            get_discovery().register(name, url=url)
            if app.registry.dry_run:
                logger.info("dry run, %s skipped", name)
                return

            from spawn import spawn_with_connection

            p, _ = spawn_with_connection(argv)

            def _shutdown():  # xxx:
                logger.info("terminate %s", name)
                with p:
                    p.terminate()

            atexit.register(_shutdown)
Ejemplo n.º 5
0
    def _register():
        import sys
        import pathlib
        from egoist.internal.netutil import find_free_port
        from discovery import get_discovery
        import util

        sentinel = util.create_sentinel_file()
        server_py = pathlib.Path(__file__).absolute().with_name("server.py")
        port = find_free_port()

        get_discovery().register("HELLO", url=f"http://127.0.0.1:{port}")

        argv = [
            sys.executable,
            server_py,
            "--port",
            str(port),
            "--host",
            "127.0.0.1",
            "--sentinel",
            sentinel,
        ]

        p = util.ConnectedProcess().spawn(argv, sentinel=sentinel)
        import atexit

        def _shutdown():
            logger.info("terminate HELLO")
            with p:
                p.terminate()

        atexit.register(_shutdown)
Ejemplo n.º 6
0
def ok2() -> None:
    import requests
    from egoist.generators.filekit import runtime
    from discovery import get_discovery

    with runtime.create_file() as wf:
        url = get_discovery().lookup("HELLO")
        res = requests.get(url)
        res.raise_for_status()
        print(res.json(), file=wf)
Ejemplo n.º 7
0
def hello__hello(*, filename: str = "./hello/hello.go") -> None:
    from egoist.generators.filekit import runtime
    from discovery import get_discovery

    with runtime.create_file() as wf:
        with get_file_opener().open(filename) as rf:
            code = rf.read()

        url = get_discovery().lookup("gofmtrpc")
        res = get_http_client().post(
            url,
            json={
                "jsonrpc": "2.0",
                "id": 1,
                "method": "format",
                "params": {
                    "code": code
                },
            },
        )
        res.raise_for_status()
        print(res.json()["result"], file=wf)