mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-10-10 17:19:51 +00:00
Don't kill SSH, ask callback server to stop instead of commtimeout
This commit is contained in:
parent
a35ae91b67
commit
2b33561b82
3 changed files with 10 additions and 9 deletions
|
@ -4,21 +4,18 @@ class CallbackServer(object):
|
|||
|
||||
def __init__(self, listen_port):
|
||||
self.listen_port = listen_port
|
||||
self.stop_serving = False
|
||||
|
||||
def start(self, log_server):
|
||||
import Pyro4
|
||||
Pyro4.config.COMMTIMEOUT = 0.5
|
||||
daemon = Pyro4.Daemon('localhost', port=self.listen_port, unixsocket=None)
|
||||
daemon.register(log_server)
|
||||
self.daemon = Pyro4.Daemon('localhost', port=self.listen_port, unixsocket=None)
|
||||
self.daemon.register(log_server)
|
||||
|
||||
def serve():
|
||||
daemon.requestLoop(loopCondition=lambda: not self.stop_serving)
|
||||
self.daemon.requestLoop()
|
||||
from threading import Thread
|
||||
self.thread = Thread(target=serve)
|
||||
self.thread.start()
|
||||
|
||||
def stop(self):
|
||||
self.stop_serving = True
|
||||
if hasattr(self, 'thread'):
|
||||
self.thread.join()
|
||||
self.daemon.shutdown()
|
||||
self.thread.join()
|
||||
|
|
|
@ -11,6 +11,9 @@ def setup_logging():
|
|||
from bootstrapvz.base.log import LogForwarder
|
||||
log_forwarder = LogForwarder()
|
||||
root = logging.getLogger()
|
||||
from bootstrapvz.base import log
|
||||
file_handler = log.get_file_handler(path='/var/log/bootstrap-vz/remote.log', debug=True)
|
||||
root.addHandler(file_handler)
|
||||
root.addHandler(log_forwarder)
|
||||
root.setLevel(logging.NOTSET)
|
||||
return log_forwarder
|
||||
|
|
|
@ -57,4 +57,5 @@ class SSHRPCManager(object):
|
|||
|
||||
def stop(self):
|
||||
self.rpc_server.stop()
|
||||
self.process.terminate()
|
||||
self.rpc_server._pyroRelease()
|
||||
self.process.wait()
|
||||
|
|
Loading…
Add table
Reference in a new issue