Move VendServer code up a directory wholesale and rename
[uccvend-vendserver.git] / VendServer / DoorClient.py
diff --git a/VendServer/DoorClient.py b/VendServer/DoorClient.py
new file mode 100755 (executable)
index 0000000..d46cebe
--- /dev/null
@@ -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]))

UCC git Repository :: git.ucc.asn.au