llvm bot monitor: Rework how the table headers and colspan are set
So that we don't have to track column names in more than one place.
Change-Id: If78f3a0693a92a65da2b0cd514f6d9f7d88f9d4b
diff --git a/monitor/bot-status.py b/monitor/bot-status.py
index be7851c..730442f 100755
--- a/monitor/bot-status.py
+++ b/monitor/bot-status.py
@@ -180,28 +180,42 @@
base_url = server['base_url']
builder_url = server['builder_url']
build_url = server['build_url']
+
+ column_titles = [
+ "Buildbot",
+ "Status",
+ "T Since",
+ "Duration",
+ "Build #",
+ "Commits",
+ "Failing steps"
+ ]
+ num_columns = len(column_titles)
+ column_titles_html = "<tr>{}</tr>\n".format(
+ "".join(["<th>{}</th>".format(t) for t in column_titles]))
+
temp.write("<table border=0 cellspacing=1 cellpadding=2>\n")
- temp.write("<tr><td colspan=7> </td><tr>\n")
- temp.write("<tr><th colspan=7>{} @ {}</td><tr>\n"
- .format(server['name'], today))
+ temp.write("<tr><td colspan={}> </td><tr>\n".format(num_columns))
+ temp.write("<tr><th colspan={}>{} @ {}</td><tr>\n"
+ .format(num_columns, server['name'], today))
for builder in server['builders']:
- temp.write("<tr><td colspan=7> </td><tr>\n")
- temp.write("<tr><th colspan=7>{}</th><tr>\n".format(builder['name']))
- temp.write("<tr><th>Buildbot</th><th>Status</th><th>T Since</th>"
- "<th>Duration</th><th>Build #</th><th>Commits</th>"
- "<th>Failing steps</th></tr>\n")
+ temp.write("<tr><td colspan={}> </td><tr>\n".format(num_columns))
+ temp.write("<tr><th colspan={}>{}</th><tr>\n".format(num_columns, builder['name']))
+ temp.write(column_titles_html)
temp.write("<tbody>\n")
for bot in builder['bots']:
temp.write("<tr>\n")
try:
status = bots_status[(base_url, bot['name'])]
except KeyError:
- temp.write(" <td>{} is offline!</td>\n</tr>\n".format(bot['name']))
+ temp.write(" <td colspan={}>{} is offline!</td>\n</tr>\n"
+ .format(num_columns, bot['name']))
continue
else:
if not status.get('valid', True):
- temp.write(" <td>Could not read status for {}!</td>\n</tr>\n".format(bot['name']))
+ temp.write(" <td colspan={}>Could not read status for {}!</td>\n</tr>\n"
+ .format(num_columns, bot['name']))
continue
found_failure |= status['fail']