11import logging
2+ from os import environ
23import sys
34
45from argparse import ArgumentParser
56from asyncio import iscoroutinefunction , run
67from typing import Callable
78from uuid import UUID
89
10+ optional_log_params = {'filename' : proxy_log } if (proxy_log := environ .get ('PROTOCOL_PROXY_LOG' )) else {}
911logging .basicConfig (
1012 level = logging .DEBUG , stream = sys .stdout ,
11- format = '{"name": "%(name)s", "lineno": "%(lineno)d", "level": "%(levelname)s", "message": "%(message)s"}'
13+ format = '{"name": "%(name)s", "lineno": "%(lineno)d", "level": "%(levelname)s", "message": "%(message)s"}' ,
14+ ** optional_log_params
1215)
1316_log = logging .getLogger (__name__ )
1417
@@ -30,12 +33,16 @@ def proxy_command_parser(parser: ArgumentParser = None):
3033 return parser
3134
3235def launch (launcher_func : Callable ):
33- parser = proxy_command_parser ()
34- parser , proxy_runner = launcher_func (parser )
35- opts = parser .parse_args ()
36- proxy_token = UUID (hex = sys .stdin .buffer .read (32 ).decode ('utf8' ))
37- manager_token = UUID (hex = sys .stdin .buffer .read (32 ).decode ('utf8' ))
38- if iscoroutinefunction (proxy_runner ):
39- run (proxy_runner (token = proxy_token , manager_token = manager_token , ** vars (opts )))
40- else :
41- proxy_runner (token = proxy_token , manager_token = manager_token , ** vars (opts ))
36+ try :
37+ parser = proxy_command_parser ()
38+ parser , proxy_runner = launcher_func (parser )
39+ opts = parser .parse_args ()
40+ _log .info (f'Launching Proxy with parameters: { opts } ' )
41+ proxy_token = UUID (hex = sys .stdin .buffer .read (32 ).decode ('utf8' ))
42+ manager_token = UUID (hex = sys .stdin .buffer .read (32 ).decode ('utf8' ))
43+ if iscoroutinefunction (proxy_runner ):
44+ run (proxy_runner (token = proxy_token , manager_token = manager_token , ** vars (opts )))
45+ else :
46+ proxy_runner (token = proxy_token , manager_token = manager_token , ** vars (opts ))
47+ except BaseException as e :
48+ _log .debug (f'Proxy Launch: Launcher caught exception: { e } ' )
0 commit comments