X-Git-Url: https://git.ucc.asn.au/?p=uccvend-vendserver.git;a=blobdiff_plain;f=VendServer%2FDoorClient.py;fp=VendServer%2FDoorClient.py;h=d46cebe98f9e7ca055cf0c58d9279480930b1b0a;hp=0000000000000000000000000000000000000000;hb=6c130dc942392ccc8b7ffa0ec2ede5f9327f99e6;hpb=e423f11f190d685156cb557319b169d2b79b752f diff --git a/VendServer/DoorClient.py b/VendServer/DoorClient.py new file mode 100755 index 0000000..d46cebe --- /dev/null +++ b/VendServer/DoorClient.py @@ -0,0 +1,30 @@ +#!/usr/bin/python + +from LATClient import LATClient +from select import select +import signal +import sys + +def check_door_service(service, test_string="got wombles?"): + latclient = LATClient(service=sys.argv[1]) + latclient.sock.send(test_string) + rfh, wfh = latclient.get_fh() + wfh.write(test_string) + wfh.flush() + rr, wr, er = select([rfh], [], [], 10.0) + if rfh not in rr: return "open" + recv = rfh.read(len(test_string)) + if recv <> test_string: return "error" + return "closed" + +if __name__ == '__main__': + result_codes = { 'open' : 0, 'closed' : 1, 'error' : 2, 'invalid args' : 3} + def return_result(result): + print result + sys.exit(result_codes[result]) + def timeout(signum, frame): + return_result("error") + if len(sys.argv) <> 2: return_result('invalid args') + signal.signal(signal.SIGALRM, timeout) + signal.alarm(15) + return_result(check_door_service(sys.argv[1]))