aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/apt-panopticon-report-email-web.lua
diff options
context:
space:
mode:
authoronefang2019-12-27 01:04:31 +1000
committeronefang2019-12-27 01:04:31 +1000
commita8b5b0b91895bae0dae7a90ecfdadc2705e7a601 (patch)
tree7d1f837ffcaa53bb60d7aae3187c2724c01ee95f /apt-panopticon-report-email-web.lua
parentExplain the time notation for Updated. (diff)
downloadapt-panopticon-a8b5b0b91895bae0dae7a90ecfdadc2705e7a601.zip
apt-panopticon-a8b5b0b91895bae0dae7a90ecfdadc2705e7a601.tar.gz
apt-panopticon-a8b5b0b91895bae0dae7a90ecfdadc2705e7a601.tar.bz2
apt-panopticon-a8b5b0b91895bae0dae7a90ecfdadc2705e7a601.tar.xz
Make the web page look better, and the tables take up less space.
Diffstat (limited to 'apt-panopticon-report-email-web.lua')
-rwxr-xr-xapt-panopticon-report-email-web.lua61
1 files changed, 33 insertions, 28 deletions
diff --git a/apt-panopticon-report-email-web.lua b/apt-panopticon-report-email-web.lua
index 60d1b49..079c4cc 100755
--- a/apt-panopticon-report-email-web.lua
+++ b/apt-panopticon-report-email-web.lua
@@ -81,13 +81,13 @@ local status = function(hosts, host, results, typ)
81 end 81 end
82 82
83 if to then 83 if to then
84 result = "[TIMEOUT" 84 result = "TIMEOUT"
85 if not s then result = result .. "*" end 85 if not s then result = result .. "*" end
86 if APT.html then 86 if APT.html then
87 if s then 87 if s then
88 result = "[<font color='blue'><b>TIMEOUT</b></font>" 88 result = "<font color='blue'><b>TIMEOUT</b></font>"
89 else 89 else
90 result = "[<font color='darkblue'><b>TIMEOUT*</b></font>" 90 result = "<font color='darkblue'><b>TIMEOUT*</b></font>"
91 end 91 end
92 end 92 end
93 if APT.html then 93 if APT.html then
@@ -96,13 +96,13 @@ local status = function(hosts, host, results, typ)
96 faulty = faulty .. host .. " (" .. typ .. ")\n" 96 faulty = faulty .. host .. " (" .. typ .. ")\n"
97 end 97 end
98 elseif 0 < e then 98 elseif 0 < e then
99 result = "[FAILED" 99 result = "FAILED"
100 if not s then result = result .. "*" end 100 if not s then result = result .. "*" end
101 if APT.html then 101 if APT.html then
102 if s then 102 if s then
103 result = "[<font color='red'><b>FAILED</b></font>" 103 result = "<font color='red'><b>FAILED</b></font>"
104 else 104 else
105 result = "[<font color='darkred'><b>FAILED*</b></font>" 105 result = "<font color='darkred'><b>FAILED*</b></font>"
106 end 106 end
107 end 107 end
108 if APT.html then 108 if APT.html then
@@ -111,17 +111,17 @@ local status = function(hosts, host, results, typ)
111 faulty = faulty .. host .. " (" .. typ .. ")\n" 111 faulty = faulty .. host .. " (" .. typ .. ")\n"
112 end 112 end
113 else 113 else
114 result = "[OK" 114 result = "OK"
115 if not s then result = result .. "*" end 115 if not s then result = result .. "*" end
116 if APT.html then 116 if APT.html then
117 if s then 117 if s then
118 result = "[<font color='lime'><b>OK</b></font>" 118 result = "<font color='lime'><b>OK</b></font>"
119 else 119 else
120 result = "[<font color='darkgreen'><b>OK*</b></font>" 120 result = "<font color='darkgreen'><b>OK*</b></font>"
121 end 121 end
122 end 122 end
123 end 123 end
124 return result .. APT.plurals(e, w, t) .. "]" 124 return result .. APT.plurals(e, w, t)
125end 125end
126 126
127local m = {} 127local m = {}
@@ -345,38 +345,41 @@ if nil == web then C("opening mirrors file - " .. e) else
345 "The links in the table and DNS list go to the detailed testing logs.</p>\n\n" .. 345 "The links in the table and DNS list go to the detailed testing logs.</p>\n\n" ..
346 "<hr>\n<h2>==== package mirror status " .. os.date("!%F %H:%M") .. " GMT ====</h2>\n" .. 346 "<hr>\n<h2>==== package mirror status " .. os.date("!%F %H:%M") .. " GMT ====</h2>\n" ..
347 347
348 "<p>[<font color='red'><b>FAILED</b></font>] or [<font color='lime'><b>OK</b></font>]" .. 348 "<p><font color='red'><b>FAILED</b></font> or <font color='lime'><b>OK</b></font>" ..
349 " means the tested thing is supported for that mirror.</p>\n" .. 349 " means the tested thing is supported for that mirror.</p>\n" ..
350 "<p>[<font color='darkred'><b>FAILED*</b></font>] or [<font color='darkgreen'><b>OK*</b></font>]" .. 350 "<p><font color='darkred'><b>FAILED*</b></font> or <font color='darkgreen'><b>OK*</b></font>" ..
351 " means the tested thing is unsupported for that mirror, but might have been tested anyway.</p>\n" .. 351 " means the tested thing is unsupported for that mirror, but might have been tested anyway.</p>\n" ..
352 "<p>[<font color='blue'><b>timeout</b></font>] or [<font color='darkblue'><b>timeout</b></font>]" .. 352 "<p><font color='blue'><b>timeout</b></font> or <font color='darkblue'><b>timeout</b></font>" ..
353 " means the mirror had some timeouts, and tests where not yet aborted. The darker colour means unsupported by the mirror, but tested anyway.</p>" .. 353 " means the mirror had some timeouts, and tests where not yet aborted. The darker colour means unsupported by the mirror, but tested anyway.</p>" ..
354 "<p>[<font color='blue'><b>TIMEOUT</b></font>] or [<font color='darkblue'><b>TIMEOUT</b></font>]" .. 354 "<p><font color='blue'><b>TIMEOUT</b></font> or <font color='darkblue'><b>TIMEOUT</b></font>" ..
355 " means the mirror had too many timeouts, and tests where aborted, so there is no result for this test.</p>" .. 355 " means the mirror had too many timeouts, and tests where aborted, so there is no result for this test.</p>" ..
356 "<p>NOTE: timeouts may be due to a problem on the testing computer.</p>" .. 356 "<p>NOTE: timeouts may be due to a problem on the testing computer.</p>" ..
357 "<p>The DNS round robin (DNS-RR) column shows the IPs for that mirror, or [<font color='grey'><b>no</b></font>] if it isn't part of the DNS-RR. &nbsp; " .. 357 "<p>The DNS round robin (DNS-RR) column shows the IPs for that mirror, or <font color='grey'><b>no</b></font> if it isn't part of the DNS-RR. &nbsp; " ..
358 "The IPs link to the testing log for that IP accessed via the DNS-RR. &nbsp; " .. 358 "The IPs link to the testing log for that IP accessed via the DNS-RR. &nbsp; " ..
359 "deb.devuan.org is the DNS-RR itself, so it doesn't get tested directly.</p>\n" .. 359 "deb.devuan.org is the DNS-RR itself, so it doesn't get tested directly.</p>\n" ..
360 "<p>The time in the Updated column is how often the mirror updates itself.</p>" .. 360 "<p>The time in the Updated column is how often the mirror updates itself.</p>" ..
361 "<p>Mirrors with a <font style='background-color:dimgrey'>grey background</font> are not active (though may be usable as part of the DNS-RR).</p>\n" .. 361 "<p>Mirrors with a <font style='background-color:dimgrey'>grey background</font> are not active (though may be usable as part of the DNS-RR).</p>\n" ..
362 "<p>[<font color='grey'><b>skip</b></font>] means that the test hasn't been written yet.</p>\n" .. 362 "<p><font color='grey'><b>skip</b></font> means that the test hasn't been written yet.</p>\n" ..
363 "<table>\n<tr><th></th><th>" .. lnk('FTP') .. "</th><th>" .. lnk('HTTP') .. "</th><th>" .. lnk('HTTPS') .. "</th><th>" .. lnk('RSYNC') .. "</th>" .. 363 "<table>\n<tr><th></th><th>" .. lnk('FTP') .. "</th><th>" .. lnk('HTTP') .. "</th><th>" .. lnk('HTTPS') .. "</th><th>" .. lnk('RSYNC') .. "</th>" ..
364 "<th>" .. lnk('DNS round robin', 'DNS-RR') .. "</th><th>" .. lnk('Protocol') .. "</th><th>" .. lnk('URL sanity', 'URL-Sanity') .. "</th><th>" .. lnk('Integrity') .. "</th>" .. 364 "<th>" .. lnk('DNS round robin', 'DNS-RR') .. "</th><th>" .. lnk('Protocol') .. "</th><th>" .. lnk('URL sanity', 'URL-Sanity') .. "</th><th>" .. lnk('Integrity') .. "</th>" ..
365 "<th>" .. lnk('Updated') .. "</th><th colspan='2'>" .. lnk('Speed range', 'Speed') .. "</th></tr>\n" 365 "<th>" .. lnk('Updated') .. "</th><th colspan='2'>" .. lnk('Speed range', 'Speed') .. "</th></tr>\n"
366 ) 366 )
367
368 local bg = ''
367 for k, v in APT.orderedPairs(APT.mirrors) do 369 for k, v in APT.orderedPairs(APT.mirrors) do
368 local results = APT.collateAll(APT.mirrors, 'results', k) 370 local results = APT.collateAll(APT.mirrors, 'results', k)
371 if '' == bg then bg = " style='background-color:#111111'" else bg = '' end
369 local active = "" 372 local active = ""
370 if "yes" == v.Active then 373 if "yes" == v.Active then
371 web:write(" <tr><th>" .. k .. "</th> ") 374 web:write(" <tr" .. bg .. "><th>" .. k .. "</th> ")
372 else 375 else
373 if nil == v.Active then active = 'nil' else active = v.Active end 376 if nil == v.Active then active = 'nil' else active = v.Active end
374 web:write(" <tr style='background-color:dimgrey'><th>" .. k .. "</th> ") 377 web:write(" <tr style='background-color:dimgrey'><th>" .. k .. "</th> ")
375 end 378 end
376 local ftp = "[<font color='grey'><b>skip</b></font>]" 379 local ftp = "<font color='grey'><b>skip</b></font>"
377 local http = status(APT.mirrors, k, results, "http") 380 local http = status(APT.mirrors, k, results, "http")
378 local https = status(APT.mirrors, k, results, "https") 381 local https = status(APT.mirrors, k, results, "https")
379 local rsync = "[<font color='grey'><b>skip</b></font>]" 382 local rsync = "<font color='grey'><b>skip</b></font>"
380 local dns = "" 383 local dns = ""
381 local protocol = status(APT.mirrors, k, results, "Protocol") 384 local protocol = status(APT.mirrors, k, results, "Protocol")
382 local sanity = status(APT.mirrors, k, results, "URLSanity") 385 local sanity = status(APT.mirrors, k, results, "URLSanity")
@@ -386,7 +389,7 @@ if nil == web then C("opening mirrors file - " .. e) else
386 if nil ~= rate then updated = updated .. ' ' .. rate end 389 if nil ~= rate then updated = updated .. ' ' .. rate end
387 local min = tonumber(results.speed.min) 390 local min = tonumber(results.speed.min)
388 local max = tonumber(results.speed.max) 391 local max = tonumber(results.speed.max)
389 local spd = '' 392 local spd = '<td></td><td></td>'
390 393
391 -- DNS-RR test. 394 -- DNS-RR test.
392 if ("deb.devuan.org" ~= k) and (nil ~= APT.mirrors["deb.devuan.org"]) then 395 if ("deb.devuan.org" ~= k) and (nil ~= APT.mirrors["deb.devuan.org"]) then
@@ -417,12 +420,12 @@ if nil == web then C("opening mirrors file - " .. e) else
417 end 420 end
418 end 421 end
419 end 422 end
420 if "" == dns then dns = "[<font color='grey'><b>no</b></font>]" end 423 if "" == dns then dns = "<font color='grey'><b>no</b></font>" end
421 424
422 if 0 == max then 425 if 0 == max then
423 spd = '<td></td><td></td>' 426 spd = '<td></td><td></td>'
424 else 427 else
425 spd = string.format('<td align="right">%d -></td><td align="right">%d</td>', min, max) 428 spd = string.format('<td align="right">%d -</td><td align="right">%d</td>', min, max)
426 end 429 end
427 end 430 end
428 431
@@ -476,6 +479,7 @@ if nil == web then C("opening mirrors file - " .. e) else
476 results = {} 479 results = {}
477 m = {} 480 m = {}
478 faulty = "" 481 faulty = ""
482 bg = ''
479 web:write( "<hr>\n<h2>==== Debian mirror status ====</h2>\n" .. 483 web:write( "<hr>\n<h2>==== Debian mirror status ====</h2>\n" ..
480 "<p>NOTE - This is not fully probing the Debian mirrors, we just collect some data from any redirects to other servers. &nbsp; " .. 484 "<p>NOTE - This is not fully probing the Debian mirrors, we just collect some data from any redirects to other servers. &nbsp; " ..
481 "So this isn't a full set of tests. &nbsp Basically we don't know the shape of the Debian mirror infrastructure.</p>\n" .. 485 "So this isn't a full set of tests. &nbsp Basically we don't know the shape of the Debian mirror infrastructure.</p>\n" ..
@@ -485,18 +489,19 @@ if nil == web then C("opening mirrors file - " .. e) else
485 "<th>" .. lnk('DNS round robin', 'DNS-RR') .. "</th><th>" .. lnk('Protocol') .. "</th><th>" .. lnk('URL sanity', 'URL-Sanity') .. "</th><th>" .. lnk('Integrity') .. "</th>" .. 489 "<th>" .. lnk('DNS round robin', 'DNS-RR') .. "</th><th>" .. lnk('Protocol') .. "</th><th>" .. lnk('URL sanity', 'URL-Sanity') .. "</th><th>" .. lnk('Integrity') .. "</th>" ..
486 "<th>" .. lnk('Updated') .. "</th><th colspan='2'>" .. lnk('Speed range', 'Speed') .. "</th></tr>\n") 490 "<th>" .. lnk('Updated') .. "</th><th colspan='2'>" .. lnk('Speed range', 'Speed') .. "</th></tr>\n")
487 for k, v in APT.orderedPairs(APT.debians) do 491 for k, v in APT.orderedPairs(APT.debians) do
492 if '' == bg then bg = " style='background-color:#111111'" else bg = '' end
488 local results = APT.collateAll(APT.debians, 'results', k) 493 local results = APT.collateAll(APT.debians, 'results', k)
489 local active = "" 494 local active = ""
490 if "yes" == v.Active then 495 if "yes" == v.Active then
491 web:write(" <tr><th>" .. k .. "</th> ") 496 web:write(" <tr " .. bg .. "><th>" .. k .. "</th> ")
492 else 497 else
493 if nil == v.Active then active = 'nil' else active = v.Active end 498 if nil == v.Active then active = 'nil' else active = v.Active end
494 web:write(" <tr style='background-color:dimgrey'><th>" .. k .. "</th> ") 499 web:write(" <tr style='background-color:dimgrey'><th>" .. k .. "</th> ")
495 end 500 end
496 local ftp = "[<font color='grey'><b>skip</b></font>]" 501 local ftp = "<font color='grey'><b>skip</b></font>"
497 local http = status(APT.debians, k, results, "http") 502 local http = status(APT.debians, k, results, "http")
498 local https = status(APT.debians, k, results, "https") 503 local https = status(APT.debians, k, results, "https")
499 local rsync = "[<font color='grey'><b>skip</b></font>]" 504 local rsync = "<font color='grey'><b>skip</b></font>"
500 local dns = "" 505 local dns = ""
501 local protocol = status(APT.debians, k, results, "Protocol") 506 local protocol = status(APT.debians, k, results, "Protocol")
502 local sanity = status(APT.debians, k, results, "URLSanity") 507 local sanity = status(APT.debians, k, results, "URLSanity")
@@ -506,7 +511,7 @@ if nil == web then C("opening mirrors file - " .. e) else
506 if nil ~= rate then updated = updated .. ' ' .. rate end 511 if nil ~= rate then updated = updated .. ' ' .. rate end
507 local min = tonumber(results.speed.min) 512 local min = tonumber(results.speed.min)
508 local max = tonumber(results.speed.max) 513 local max = tonumber(results.speed.max)
509 local spd = '' 514 local spd = '<td></td><td></td>'
510 515
511 -- DNS-RR test. 516 -- DNS-RR test.
512 if ("deb.devuan.org" ~= k) and (nil ~= APT.debians["deb.devuan.org"]) then 517 if ("deb.devuan.org" ~= k) and (nil ~= APT.debians["deb.devuan.org"]) then
@@ -537,12 +542,12 @@ if nil == web then C("opening mirrors file - " .. e) else
537 end 542 end
538 end 543 end
539 end 544 end
540 if "" == dns then dns = "[<font color='grey'><b>no</b></font>]" end 545 if "" == dns then dns = "<font color='grey'><b>no</b></font>" end
541 546
542 if 0 == max then 547 if 0 == max then
543 spd = '<td></td><td></td>' 548 spd = '<td></td><td></td>'
544 else 549 else
545 spd = string.format('<td align="right">%d -></td><td align="right">%d</td>', min, max) 550 spd = string.format('<td align="right">%d -</td><td align="right">%d</td>', min, max)
546 end 551 end
547 end 552 end
548 553