async def get_client(self, host, port): remote = AsyncioClient() await remote.connect_rpc(host, port, None) targets, _ = remote.get_rpc_id() remote.select_rpc_target(targets[0]) self.addCleanup(remote.close_rpc) return remote
async def _call_controller(self, method): remote = AsyncioClient() await remote.connect_rpc(self.host, self.port, None) try: targets, _ = remote.get_rpc_id() remote.select_rpc_target(targets[0]) r = await getattr(remote, method)() finally: remote.close_rpc() return r
async def call(self, method, *args, **kwargs): remote = AsyncioClient() await remote.connect_rpc(self.host, self.port, None) try: targets, _ = remote.get_rpc_id() remote.select_rpc_target(targets[0]) r = await getattr(remote, method)(*args, **kwargs) finally: remote.close_rpc() return r