from pathlib import Path from integrations import docker from integrations.docker import DockerContainer from integrations.docker.ports import _get_random_port async def create_proxy( port: int, service: DockerContainer, code: str, ) -> int: """ Utility function that will: - run ``integrations/docker`` utilities to change the old port of original service to a random one /- write ``code`` into ``/tmp/theplug/{random}.py`` - start a subprocess via asyncio - return the proxy infos (pid, ) """ path = Path(f"/tmp/theplug/{service["name"]}.py") path.parent.mkdir(parents=True, exist_ok=True) path.write_text(code, encoding="utf-8") # da qui bisogna: # scegliere una porta random alla quale spostare il docker # modificare il docker via integrations.docker.editor.change_port ( service.folder, service.name, port, random_nuova_port ) random_port = _get_random_port() docker.editor.change_port( service["name"], service["folder"], port, random_port, ) return 0