forked from M-Labs/artiq
protocols/remote_exec: add connect_global_rpc
This commit is contained in:
parent
059836c591
commit
4ce00e3b7a
|
@ -4,7 +4,7 @@ import inspect
|
||||||
from artiq.protocols.pc_rpc import simple_server_loop
|
from artiq.protocols.pc_rpc import simple_server_loop
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["RemoteExecServer", "RemoteExecClient", "simple_rexec_server_loop"]
|
__all__ = ["RemoteExecServer", "simple_rexec_server_loop", "connect_global_rpc"]
|
||||||
|
|
||||||
|
|
||||||
class RemoteExecServer:
|
class RemoteExecServer:
|
||||||
|
@ -29,3 +29,19 @@ def simple_rexec_server_loop(target_name, target, host, port,
|
||||||
target_name + "_rexec": lambda: RemoteExecServer(initial_namespace)
|
target_name + "_rexec": lambda: RemoteExecServer(initial_namespace)
|
||||||
}
|
}
|
||||||
simple_server_loop(targets, host, port, description)
|
simple_server_loop(targets, host, port, description)
|
||||||
|
|
||||||
|
|
||||||
|
def connect_global_rpc(controller_rexec, host=None, port=3251,
|
||||||
|
target="master_dataset_db", name="dataset_db"):
|
||||||
|
if host is None:
|
||||||
|
host = controller_rexec.get_local_host()
|
||||||
|
code = """
|
||||||
|
if "{name}" not in controller_initial_namespace:
|
||||||
|
import atexit
|
||||||
|
from artiq.protocols.pc_rpc import Client
|
||||||
|
|
||||||
|
{name} = Client("{host}", {port}, "{target}")
|
||||||
|
atexit.register({name}.close_rpc)
|
||||||
|
controller_initial_namespace["{name}"] = {name}
|
||||||
|
""".format(host=host, port=port, target=target, name=name)
|
||||||
|
controller_rexec.add_code(code)
|
||||||
|
|
Loading…
Reference in New Issue