import renderer
import time
+
class periodic_health_renderer(renderer.debuggable_abstaining_renderer):
def __init__(self, name_to_timeout_dict):
super(periodic_health_renderer, self).__init__(name_to_timeout_dict, False)
return "health"
def periodic_render(self, key):
- f = file_writer.file_writer('periodic-health_6_300.html')
- timestamps = '/timestamps/'
+ f = file_writer.file_writer("periodic-health_6_300.html")
+ timestamps = "/timestamps/"
days = constants.seconds_per_day
hours = constants.seconds_per_hour
mins = constants.seconds_per_minute
minutes = mins
limits = {
- timestamps + 'last_http_probe_wannabe_house' : mins * 10,
- timestamps + 'last_http_probe_meerkat_cabin' : mins * 10,
- timestamps + 'last_http_probe_dns_house' : mins * 10,
- timestamps + 'last_http_probe_rpi_cabin' : mins * 10,
- timestamps + 'last_http_probe_rpi_house' : mins * 10,
- timestamps + 'last_http_probe_therm_house' : mins * 10,
-
- timestamps + 'last_rsnapshot_hourly' : hours * 24,
- timestamps + 'last_rsnapshot_daily' : days * 3,
- timestamps + 'last_rsnapshot_weekly' : days * 14,
- timestamps + 'last_rsnapshot_monthly' : days * 70,
-
- timestamps + 'last_zfssnapshot_hourly' : hours * 5,
- timestamps + 'last_zfssnapshot_daily' : hours * 36,
- timestamps + 'last_zfssnapshot_weekly' : days * 9,
- timestamps + 'last_zfssnapshot_monthly' : days * 70,
- timestamps + 'last_zfssnapshot_cleanup' : hours * 24,
-
- timestamps + 'last_zfs_scrub' : days * 9,
- timestamps + 'last_backup_zfs_scrub' : days * 9,
- timestamps + 'last_cabin_zfs_scrub' : days * 9,
-
- timestamps + 'last_zfsxfer_backup.house' : hours * 36,
- timestamps + 'last_zfsxfer_ski.dyn.guru.org' : days * 7,
- timestamps + 'last_photos_sync' : hours * 8,
-
- timestamps + 'last_disk_selftest_short' : days * 14,
- timestamps + 'last_disk_selftest_long' : days * 31,
- timestamps + 'last_backup_disk_selftest_short': days * 14,
- timestamps + 'last_backup_disk_selftest_long' : days * 31,
- timestamps + 'last_cabin_disk_selftest_short' : days * 14,
- timestamps + 'last_cabin_disk_selftest_long' : days * 31,
-
- timestamps + 'last_cabin_rpi_ping' : mins * 10,
- timestamps + 'last_healthy_wifi' : mins * 10,
- timestamps + 'last_healthy_network' : mins * 10,
- timestamps + 'last_scott_sync' : days * 2,
+ timestamps + "last_http_probe_wannabe_house": mins * 10,
+ timestamps + "last_http_probe_meerkat_cabin": mins * 10,
+ timestamps + "last_http_probe_dns_house": mins * 10,
+ timestamps + "last_http_probe_rpi_cabin": mins * 10,
+ timestamps + "last_http_probe_rpi_house": mins * 10,
+ timestamps + "last_http_probe_therm_house": mins * 10,
+ timestamps + "last_rsnapshot_hourly": hours * 24,
+ timestamps + "last_rsnapshot_daily": days * 3,
+ timestamps + "last_rsnapshot_weekly": days * 14,
+ timestamps + "last_rsnapshot_monthly": days * 70,
+ timestamps + "last_zfssnapshot_hourly": hours * 5,
+ timestamps + "last_zfssnapshot_daily": hours * 36,
+ timestamps + "last_zfssnapshot_weekly": days * 9,
+ timestamps + "last_zfssnapshot_monthly": days * 70,
+ timestamps + "last_zfssnapshot_cleanup": hours * 24,
+ timestamps + "last_zfs_scrub": days * 9,
+ timestamps + "last_backup_zfs_scrub": days * 9,
+ timestamps + "last_cabin_zfs_scrub": days * 9,
+ timestamps + "last_zfsxfer_backup.house": hours * 36,
+ timestamps + "last_zfsxfer_ski.dyn.guru.org": days * 7,
+ timestamps + "last_photos_sync": hours * 8,
+ timestamps + "last_disk_selftest_short": days * 14,
+ timestamps + "last_disk_selftest_long": days * 31,
+ timestamps + "last_backup_disk_selftest_short": days * 14,
+ timestamps + "last_backup_disk_selftest_long": days * 31,
+ timestamps + "last_cabin_disk_selftest_short": days * 14,
+ timestamps + "last_cabin_disk_selftest_long": days * 31,
+ timestamps + "last_cabin_rpi_ping": mins * 10,
+ timestamps + "last_healthy_wifi": mins * 10,
+ timestamps + "last_healthy_network": mins * 10,
+ timestamps + "last_scott_sync": days * 2,
}
self.write_header(f)
age = now - ts
self.debug_print("%s -- age is %ds, limit is %ds" % (x, age, limits[x]))
if age < limits[x]:
- f.write('<TD BGCOLOR="#007010" HEIGHT=100 WIDTH=33% STYLE="text-size:60%; vertical-align: middle;">\n')
+ f.write(
+ '<TD BGCOLOR="#007010" HEIGHT=100 WIDTH=33% STYLE="text-size:60%; vertical-align: middle;">\n'
+ )
else:
- f.write('<TD BGCOLOR="#990000" HEIGHT=100 WIDTH=33% CLASS="invalid" STYLE="text-size:60%; vertical-align:middle;">\n')
+ f.write(
+ '<TD BGCOLOR="#990000" HEIGHT=100 WIDTH=33% CLASS="invalid" STYLE="text-size:60%; vertical-align:middle;">\n'
+ )
f.write(" <CENTER><FONT SIZE=-2>\n")
name = x.replace(timestamps, "")
hours = divmod(days[1], constants.seconds_per_hour)
minutes = divmod(hours[1], constants.seconds_per_minute)
- self.debug_print("%s is %d days %02d:%02d old." % (
- name, days[0], hours[0], minutes[0]))
- f.write("%s<BR>\n<B>%d</b> days <B>%02d</B>:<B>%02d</B> old.\n" % (
- name, days[0], hours[0], minutes[0]))
+ self.debug_print(
+ "%s is %d days %02d:%02d old." % (name, days[0], hours[0], minutes[0])
+ )
+ f.write(
+ "%s<BR>\n<B>%d</b> days <B>%02d</B>:<B>%02d</B> old.\n"
+ % (name, days[0], hours[0], minutes[0])
+ )
f.write("</FONT></CENTER>\n</TD>\n\n")
n += 1
if n % 3 == 0:
return True
def write_header(self, f):
- f.write("""
+ f.write(
+ """
<HTML>
<HEAD>
<STYLE>
<CENTER>
<TABLE BORDER=0 WIDTH=99% style="font-size:16pt">
<TR>
-""")
+"""
+ )
def write_footer(self, f):
- f.write("""
+ f.write(
+ """
</TR>
</TABLE>
</BODY>
-</HTML>""")
+</HTML>"""
+ )
+
test = periodic_health_renderer({"Test", 123})
test.periodic_render("Test")