return a connected socket gateway through the
given gateway.
def remote_install(cls, gateway, hostport=None):
origin: type
where:
function source:
def remote_install(cls, gateway, hostport=None):
""" return a connected socket gateway through the
given gateway.
"""
if hostport is None:
host, port = ('', 0)
else:
host, port = hostport
socketserverbootstrap = py.code.Source(
mypath.dirpath('script', 'socketserver.py').read('rU'),
"""
import socket
sock = bind_and_listen((%r, %r))
hostname = socket.gethostname()
channel.send((hostname, sock.getsockname()))
startserver(sock)
""" % (host, port))
# execute the above socketserverbootstrap on the other side
channel = gateway.remote_exec(socketserverbootstrap)
hostname, (realhost, realport) = channel.receive()
if hostport is None:
realhost = hostname
#gateway.trace("remote_install received"
# "port=%r, hostname = %r" %(realport, hostname))
return py.execnet.SocketGateway(realhost, realport)
called in /home/johnny/projects/merlinux/py/dist/py/execnet/testing/test_gateway.py