8 def argv_to_dict(argv):
10 NOTE: very bare-bones, no error checking, will fail easily.
24 d = argv_to_dict(sys.argv[1:])
26 if 'pattern' in d or 'p' in d:
28 pattern = d['pattern']
32 print "UNKNOWN: Argument error"
36 # TODO: check that RT is configured correctly
37 os.environ["RTSERVER"] = auth.RTSERVER
38 os.environ["RTUSER"] = auth.RTUSER
39 os.environ["RTPASSWD"] = auth.RTPASSWD
40 os.environ["RTDEBUG"] = auth.RTDEBUG
42 # TODO: may need to add a timeout
44 query = "Subject like '%%%s%%' and Queue='Monitor' and ( Status='new' or Status='open' )" % pattern
45 cmd = """rt ls -s -t ticket "%s" 2>&1 """ % query
46 cmd = cmd + """| grep -vi "no match" | wc -l """
48 out = os.popen(cmd, 'r')
49 open_tickets = out.read()
52 open_tickets_i = int(open_tickets)
54 print "UNKNOWN: failed to convert %s to open ticket count" % open_tickets
57 if open_tickets_i == 0:
58 print "OK: no open tickets for site"
60 elif open_tickets_i != 0:
61 print "WARNING: %s open tickets" % open_tickets_i
64 print "FAKE-CRITICAL: RT check failed"
68 if __name__ == '__main__':
69 f = open("/tmp/checkpcu", 'a')
70 f.write("checkpcu %s %s\n" % (time.time(), " ".join(sys.argv[1:])))