clearer names for actions, and infer actions better
[monitor.git] / statistics / harvest_rt.py
1 #!/usr/bin/python
2
3 import os
4 import time
5 from datetime import datetime, timedelta
6 import sys
7 from monitor.common import Time
8
9 def popen(cmdstr):
10         f = os.popen(cmdstr)
11         ret = f.read()
12         return ret
13
14 def datetime_fromstr(str):
15         if '-' in str:
16                 try:
17                         tup = time.strptime(str, "%Y-%m-%d")
18                 except:
19                         tup = time.strptime(str, "%Y-%m-%d-%H:%M")
20         elif '/' in str:
21                 tup = time.strptime(str, "%m/%d/%Y")
22         else:
23                 tup = time.strptime(str, "%m/%d/%Y")
24         ret = datetime.fromtimestamp(time.mktime(tup))
25         return ret
26
27
28 def main():
29         queue = sys.argv[1]
30         d1 = datetime_fromstr(sys.argv[2])
31         iterations = int(sys.argv[3])
32         i = 0
33         while i < iterations:
34                 d1_s = d1.strftime("%Y-%m-%d")
35                 d2 = d1 + timedelta(1)
36                 d2_s = d2.strftime("%Y-%m-%d")
37                 query = "Queue='%s' and " % queue 
38                 query = query + "Told > '%s' and Told < '%s'" % (d1_s, d2_s)
39                 cmd = """rt ls -t ticket "%s" | grep -v "No matching" | wc -l  """ % query
40                 #print cmd
41                 ret = popen(cmd)
42                 print "%s,%s,%s" % (d1_s, Time.dt_to_ts(d1), ret[:-1])
43                 d1=d2
44                 i += 1
45
46 if __name__ == "__main__":
47         main()