clearer names for actions, and infer actions better
[monitor.git] / statistics / get-records.py
1 #!/usr/bin/python
2
3 from monitor.database.info.model import *
4 import time
5 import sys
6
7 sumdata = {}
8 sumdata['nodes'] = {}
9 sumdata['sites'] = {}
10 sumdata['pcus'] = {}
11
12 def summarize(query, type):
13         for o in query:
14                 if o.status not in sumdata[type]:
15                         sumdata[type][o.status] = 0
16                 sumdata[type][o.status] += 1
17
18 time_str = time.strftime("%m/%d/%y+%H:%M")
19
20 if len(sys.argv) == 1:
21         print "For use in conjunction with add-google-record.py"
22         print "Usage: %s <nodes|sites>" % sys.argv[0]
23         sys.exit(1)
24
25 elif sys.argv[1] == "sites":
26
27         site_type_list = ['date', 'good', 'offline', 'down', 'online', 'new']
28
29         for k in site_type_list:
30                 sumdata['sites'][k]=0 
31
32         fbquery = HistorySiteRecord.query.all()
33         summarize(fbquery, 'sites')
34         sumdata['sites']['date'] = time_str
35         for f in sumdata['sites']:
36                 sumdata['sites'][f] = str(sumdata['sites'][f])
37
38         l = ",".join(site_type_list)
39         v = ",".join([ sumdata['sites'][k] for k in site_type_list ])
40         print "--labels=%s --values=%s" % ( l, v )
41
42 elif sys.argv[1] == "nodes":
43
44         node_type_list = ['date', 'good', 'offline', 'down', 'online', 'disabled', 'failboot', 'safeboot']
45         for k in node_type_list:
46                 sumdata['nodes'][k]=0 
47         fbquery = HistoryNodeRecord.query.all()
48         summarize(fbquery, 'nodes')
49         sumdata['nodes']['date'] = time_str
50         for f in sumdata['nodes']:
51                 sumdata['nodes'][f] = str(sumdata['nodes'][f])
52
53         l = ",".join(node_type_list)
54         v = ",".join([ sumdata['nodes'][k] for k in node_type_list ])
55         print "--labels=%s --values=%s" % ( l, v )
56
57
58 #row.content
59 #row.Push()
60 #row.Pull()