summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2013-08-04 04:54:09 +0200
committerroot <root@vm-monitoring.spline.inf.fu-berlin.de>2013-08-04 04:54:09 +0200
commit6f42f8e732eee142e8e04597f1410973b38567b5 (patch)
tree40498e8a16508a0adcc14fe6e81ac9d403f2707b
parent96184bc90fb082dcdb1ded95c74f07204065016a (diff)
downloadformat-notify-master.tar.gz
format-notify-master.tar.bz2
format-notify-master.zip
use socket instead of pipe for communication to phennyHEADmaster
-rwxr-xr-xformat-notify26
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()