diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2013-08-04 04:54:09 +0200 |
---|---|---|
committer | root <root@vm-monitoring.spline.inf.fu-berlin.de> | 2013-08-04 04:54:09 +0200 |
commit | 6f42f8e732eee142e8e04597f1410973b38567b5 (patch) | |
tree | 40498e8a16508a0adcc14fe6e81ac9d403f2707b | |
parent | 96184bc90fb082dcdb1ded95c74f07204065016a (diff) | |
download | format-notify-6f42f8e732eee142e8e04597f1410973b38567b5.tar.gz format-notify-6f42f8e732eee142e8e04597f1410973b38567b5.tar.bz2 format-notify-6f42f8e732eee142e8e04597f1410973b38567b5.zip |
-rwxr-xr-x | format-notify | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/format-notify b/format-notify index 5f9dddd..59a9740 100755 --- a/format-notify +++ b/format-notify @@ -1,6 +1,6 @@ #!/usr/bin/env python -import os, sys, re, errno, time, random, syslog +import os, sys, re, syslog, socket def add_color(status): if status == 'WARNING': @@ -20,7 +20,7 @@ def clean_output(status, output): def main(): if len(sys.argv) < 5: - print('Usage: %s (PIPE|--test) SERVICE STATUS OUTPUT' % sys.argv[0]) + print('Usage: %s (SOCKET|--test) SERVICE STATUS OUTPUT' % sys.argv[0]) sys.exit(1) file = sys.argv.pop(1) @@ -38,20 +38,14 @@ def main(): if not os.path.exists(file): sys.exit(1) - now = time.time() - while True: - try: - f = os.open(file, os.O_WRONLY | os.O_NONBLOCK) - break - except OSError: - if time.time() - now > 2: - syslog.syslog("Dropping message: '%s'" % msg) - sys.exit(1) - else: - time.sleep(random.random() * 0.3) - - os.write(f, msg) - os.close(f) + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + try: + s.connect(file) + s.sendall(msg) + s.close() + except socket.error: + syslog.syslog("Dropping message: '%s'" % msg) + sys.exit(1) if __name__ == '__main__': main() |