Skip to content

Instantly share code, notes, and snippets.

@ZoomQuiet
Forked from qingfeng/client.sh
Created November 20, 2009 10:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ZoomQuiet/239417 to your computer and use it in GitHub Desktop.
Save ZoomQuiet/239417 to your computer and use it in GitHub Desktop.
import tornado.httpserver
import tornado.ioloop
import tornado.web
import time
import os
CMD_FILE = "/tmp/nagios.cmd"
def process_data(data):
resutls = data.split(";")
if len(results)==3:
c1 = "PROCESS_HOST_CHECK_RESULT"
else:
c1 = "PROCESS_SERVICE_CHECK_RESULT"
msg = "[%s] %s;%s\n" % (int(time.time()),c1,data[0])
return msg
def writefifo(msg):
try:
fd = os.open(CMD_FILE,os.O_RDWR|os.O_NONBLOCK)
os.write(fd,msg)
finally:
try:
os.close(fd)
except:
pass
return True
class MainHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def post(self):
if 'data' in self.request.arguments:
data = self.request.arguments['data']
msg = process_data(data[0])
self.write(msg)
writefifo(msg)
self.finish()
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment