jobs - lock and reload management
This commit is contained in:
@@ -5,30 +5,29 @@ class ReloadServerHandler(socketserver.StreamRequestHandler):
|
||||
def handle(self) :
|
||||
locked = False
|
||||
try :
|
||||
# Get lock order from client
|
||||
data = self.request.recv(512)
|
||||
if not data or data != b"lock" :
|
||||
return
|
||||
self.server.controller.lock.acquire()
|
||||
locked = True
|
||||
|
||||
# Get reload order from client
|
||||
data = self.request.recv(512)
|
||||
if not data or data != b"reload" :
|
||||
self.server.controller.lock.release()
|
||||
return
|
||||
if self.server.controller.reload() :
|
||||
self.request.sendall(b"ok")
|
||||
else :
|
||||
self.request.sendall(b"ko")
|
||||
|
||||
# Release the lock
|
||||
self.server.controller.lock.release()
|
||||
|
||||
while True :
|
||||
data = self.request.recv(512)
|
||||
if not data or not data in [b"lock", b"reload", b"unlock"] :
|
||||
break
|
||||
if data == b"lock" :
|
||||
self.server.controller.lock.acquire()
|
||||
locked = True
|
||||
self.request.sendall(b"ok")
|
||||
elif data == b"unlock" :
|
||||
self.server.controller.lock.release()
|
||||
locked = False
|
||||
self.request.sendall(b"ok")
|
||||
elif data == b"reload" :
|
||||
ret = self.server.controller.reload() :
|
||||
if ret :
|
||||
self.request.sendall(b"ok")
|
||||
else :
|
||||
self.request.sendall(b"ko")
|
||||
except Exception as e :
|
||||
utils.log("Exception ReloadServer : " + str(e))
|
||||
if locked :
|
||||
self.server.controller.lock.release()
|
||||
if locked :
|
||||
self.server.controller.lock.release()
|
||||
|
||||
def run_reload_server(controller) :
|
||||
server = socketserver.UnixStreamServer("/tmp/autoconf.sock", ReloadServerHandler)
|
||||
|
||||
Reference in New Issue
Block a user