3 # Read in the act_* databases and print out a human readable version
11 def fields_to_html(fields):
12 colorMap = { 'PING' : 'darkseagreen',
13 'NOPING': 'darksalmon',
14 'SSH': 'darkseagreen',
16 'PCU': 'darkseagreen',
18 'OLDBOOTCD': 'crimson',
22 'PROD': 'darkseagreen',
23 'DEBUG': 'darksalmon',
24 'DEBUG': 'darksalmon',
29 bgcolor="bgcolor='%s'" % colorMap[f]
32 r_str += "<td nowrap %s>%s</td>" % (bgcolor, f)
36 def rtTicketLink(rt_ticket):
37 link = """<a href="https://rt.planet-lab.org/Ticket/Display.html?user=guest&pass=guest&id=%s">RT #%s</a>""" % (rt_ticket, rt_ticket)
47 act_all = soltesz.dbLoad("act_all")
48 plcdb_hn2lb = soltesz.dbLoad("plcdb_hn2lb")
52 sorted_keys = act_all.keys()
54 for nodename in sorted_keys:
55 diag_nodelist = act_all[nodename]
56 if nodename in plcdb_hn2lb:
57 lb = plcdb_hn2lb[nodename]
60 sickdb[lb][nodename] = diag_nodelist
62 sorted_keys = sickdb.keys()
64 print "<table width=80% border=1>"
65 for loginbase in sorted_keys:
66 nodedict = sickdb[loginbase]
67 sort_nodekeys = nodedict.keys()
69 print "<tr><td bgcolor=lightblue nowrap>",
71 print "</td><td colspan=5> </td>",
74 for nodename in sort_nodekeys:
76 if len(act_all[nodename]) == 0:
77 #print "<tr><td>%s</td>" % (nodename)
78 #print "<td>has no events</td></tr>"
81 # print just the latest event
82 event = act_all[nodename][0]
86 s_time=time.strftime("%Y/%m/%d %H:%M:%S",
87 time.gmtime(event['time']))
89 if 'ticket_id' in event and event['ticket_id'] != "":
90 link = rtTicketLink(event['ticket_id'])
93 if 'found_rt_ticket' in event and event['found_rt_ticket'] != "":
94 link = rtTicketLink(event['found_rt_ticket'])
97 fields += ["No Known RT Ticket"]
99 if event['action'] == "close_rt":
104 for f in ['category', 'action', 'stage', 'info']:
105 if 'stage' in f and 'stage' in event and 'stage' in event['stage']:
106 # truncate the stage_ part.
107 event['stage'] = event['stage'][6:]
109 if type(event[f]) == type([]):
117 print fields_to_html(fields),
123 print "<th>Sites</th>"
124 print "<th>Nodes</th>"
125 print "<th>Restored</th>"
126 print "<th>Down</th>"
130 print "<td>%s</td>" % total_sites
131 print "<td>%s</td>" % total_nodes
132 print "<td>%s</td>" % total_restored
133 print "<td>%s</td>" % total_down
141 if __name__ == '__main__':
142 print "Content-Type: text/html\r\n"
143 print "<html><body>\n"
145 print "</body></html>\n"