8 def argv_to_dict(argv):
10 NOTE: very bare-bones, no error checking, will fail easily.
23 def get_next_pattern(argv, last):
24 """ This is worse than the function above. """
31 for offset,a in enumerate(argv[i+1:]):
33 return argv[i+2+offset]
38 #d = argv_to_dict(sys.argv[1:])
44 pattern = get_next_pattern(sys.argv, last)
49 (r_ret,o_ret) = look_for_pattern(pattern)
54 print "UNKNOWN: failed to convert %s to open ticket count" % o
57 print "OK: no open tickets for site"
60 print "WARNING: %s open tickets" % o
63 print "FAKE-CRITICAL: RT check failed"
66 def look_for_pattern(pattern):
68 # TODO: check that RT is configured correctly
69 os.environ["RTSERVER"] = auth.RTSERVER
70 os.environ["RTUSER"] = auth.RTUSER
71 os.environ["RTPASSWD"] = auth.RTPASSWD
72 os.environ["RTDEBUG"] = auth.RTDEBUG
74 # TODO: may need to add a timeout
76 query = "Subject like '%%%s%%' and Queue='Monitor' and ( Status='new' or Status='open' )" % pattern
77 cmd = """rt ls -s -t ticket "%s" 2>&1 """ % query
78 cmd = cmd + """| grep -vi "no match" | wc -l """
80 # print >>sys.stderr, cmd
81 # print >>sys.stderr, os.environ
82 out = os.popen(cmd, 'r')
83 open_tickets = out.read()
86 open_tickets_i = int(open_tickets)
90 if open_tickets_i == 0:
92 elif open_tickets_i != 0:
93 return (1,open_tickets_i)
95 return (2,open_tickets_i)
98 if __name__ == '__main__':
99 f = open("/tmp/checkrt", 'a')
100 f.write("checkrt %s %s\n" % (time.time(), " ".join(sys.argv[1:])))