bootstrap-vz/bootstrapvz/base/remote/callback.py

27 lines
680 B
Python
Raw Normal View History

class CallbackServer(object):
def __init__(self, listen_port, remote_port):
self.listen_port = listen_port
self.remote_port = remote_port
2014-11-24 18:54:31 +01:00
def start(self, log_server):
import Pyro4
self.daemon = Pyro4.Daemon(host='localhost', port=self.listen_port,
nathost='localhost', natport=self.remote_port,
unixsocket=None)
self.daemon.register(log_server)
def serve():
self.daemon.requestLoop()
from threading import Thread
self.thread = Thread(target=serve)
self.thread.start()
def stop(self):
2014-11-25 20:43:23 +01:00
if hasattr(self, 'daemon'):
self.daemon.shutdown()
if hasattr(self, 'thread'):
self.thread.join()