mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-24 15:36:27 +00:00
Allow listening on different ports on remote and local
This commit is contained in:
parent
90f207897e
commit
d88d73c7f1
4 changed files with 22 additions and 12 deletions
|
@ -2,12 +2,15 @@
|
||||||
|
|
||||||
class CallbackServer(object):
|
class CallbackServer(object):
|
||||||
|
|
||||||
def __init__(self, listen_port):
|
def __init__(self, listen_port, remote_port):
|
||||||
self.listen_port = listen_port
|
self.listen_port = listen_port
|
||||||
|
self.remote_port = remote_port
|
||||||
|
|
||||||
def start(self, log_server):
|
def start(self, log_server):
|
||||||
import Pyro4
|
import Pyro4
|
||||||
self.daemon = Pyro4.Daemon('localhost', port=self.listen_port, unixsocket=None)
|
self.daemon = Pyro4.Daemon(host='localhost', port=self.listen_port,
|
||||||
|
nathost='localhost', natport=self.remote_port,
|
||||||
|
unixsocket=None)
|
||||||
self.daemon.register(log_server)
|
self.daemon.register(log_server)
|
||||||
|
|
||||||
def serve():
|
def serve():
|
||||||
|
|
|
@ -27,7 +27,8 @@ def main():
|
||||||
manager.start()
|
manager.start()
|
||||||
server = manager.rpc_server
|
server = manager.rpc_server
|
||||||
from callback import CallbackServer
|
from callback import CallbackServer
|
||||||
callback_server = CallbackServer(manager.local_callback_port)
|
callback_server = CallbackServer(listen_port=manager.local_callback_port,
|
||||||
|
remote_port=manager.remote_callback_port)
|
||||||
from bootstrapvz.base.log import LogServer
|
from bootstrapvz.base.log import LogServer
|
||||||
log_server = LogServer()
|
log_server = LogServer()
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -5,7 +5,7 @@ def main():
|
||||||
from . import register_deserialization_handlers
|
from . import register_deserialization_handlers
|
||||||
register_deserialization_handlers()
|
register_deserialization_handlers()
|
||||||
log_forwarder = setup_logging()
|
log_forwarder = setup_logging()
|
||||||
server = Server(opts, log_forwarder)
|
server = Server(opts['--listen'], log_forwarder)
|
||||||
server.start()
|
server.start()
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,10 +34,10 @@ Options:
|
||||||
|
|
||||||
class Server(object):
|
class Server(object):
|
||||||
|
|
||||||
def __init__(self, opts, log_forwarder):
|
def __init__(self, listen_port, log_forwarder):
|
||||||
self.stop_serving = False
|
self.stop_serving = False
|
||||||
self.log_forwarder = log_forwarder
|
self.log_forwarder = log_forwarder
|
||||||
self.listen_port = opts['--listen']
|
self.listen_port = listen_port
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
import Pyro4
|
import Pyro4
|
||||||
|
|
|
@ -9,13 +9,19 @@ class SSHRPCManager(object):
|
||||||
def __init__(self, settings):
|
def __init__(self, settings):
|
||||||
self.settings = settings
|
self.settings = settings
|
||||||
|
|
||||||
|
[self.local_server_port, self.local_callback_port] = self.getNPorts(2)
|
||||||
|
[self.remote_server_port, self.remote_callback_port] = self.getNPorts(2)
|
||||||
|
|
||||||
|
def getNPorts(self, n, port_range=(1024, 65535)):
|
||||||
import random
|
import random
|
||||||
self.local_server_port = random.randrange(1024, 65535)
|
ports = []
|
||||||
self.local_callback_port = random.randrange(1024, 65535)
|
for i in range(0, n):
|
||||||
# self.remote_server_port = random.randrange(1024, 65535)
|
while True:
|
||||||
# self.remote_callback_port = random.randrange(1024, 65535)
|
port = random.randrange(*port_range)
|
||||||
self.remote_server_port = self.local_server_port
|
if port not in ports:
|
||||||
self.remote_callback_port = self.local_callback_port
|
ports.append(port)
|
||||||
|
break
|
||||||
|
return ports
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
log.debug('Opening SSH connection')
|
log.debug('Opening SSH connection')
|
||||||
|
|
Loading…
Add table
Reference in a new issue