X-Git-Url: https://git.ucc.asn.au/?p=zanchey%2Fdispense2.git;a=blobdiff_plain;f=sql-edition%2Fservers%2FLATClient.py;h=fd5cf236b7c047b6281bdd0218441b8d6c8f3f2c;hp=362a452ea9e0d0fe05ad4dd9146f83d81bd98efb;hb=151da34cc4282b32721ccd81c38a2e78a07f7ade;hpb=f308c12442bc9bc54ba21e1f03077a4f45018f58 diff --git a/sql-edition/servers/LATClient.py b/sql-edition/servers/LATClient.py index 362a452..fd5cf23 100644 --- a/sql-edition/servers/LATClient.py +++ b/sql-edition/servers/LATClient.py @@ -10,6 +10,8 @@ LATCP_CMD_VERSION = 8 LATCP_CMD_TERMINALSESSION = 26 LATCP_CMD_ERRORMSG = 99 +class LATClientException(Exception): pass + class LATClient: def __init__(self, service = None, node = None, port = None, localport = None, password = None, is_queued = False, @@ -42,11 +44,14 @@ class LATClient: )) (cmd, msg) = self.read_reply() if ord(cmd) == LATCP_CMD_ERRORMSG: - raise Exception('LATClient: '+msg) + raise LATClientException(msg) + + self.rfh = self.sock.makefile('r') + self.wfh = self.sock.makefile('w') - r = select([self.sock], [], [], 2.0)[0] + r = select([self.rfh], [], [], 2.0)[0] if r: - l = self.sock.readline() + l = self.rfh.readline() if l.find('Service in use') >= 0: print "Service in use, apparently: restarting DEC server" self.reboot_server() @@ -73,8 +78,12 @@ class LATClient: mop.write(self.priv_password+'\n') mop.write('init del 0\n') mop.close() + print print "Waiting 10 seconds for DEC server to come back to life..." sleep(10) + print "Rightyo, back to vending!" + print + raise LATClientException('needed to reboot server') def read_reply(self): head = self.sock.recv(3) @@ -89,4 +98,4 @@ class LATClient: return (cmd, msg) def get_fh(self): - return (self.sock.makefile('r'), self.sock.makefile('w')) + return (self.rfh, self.wfh)