[or-cvs] [ernie/master] Tweak relay flag table and summary a bit.
karsten at torproject.org
karsten at torproject.org
Tue Apr 20 19:10:25 UTC 2010
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Tue, 20 Apr 2010 21:10:05 +0200
Subject: Tweak relay flag table and summary a bit.
Commit: 10ac4156b482867824587d3296a0fbe14a1c2bea
---
src/ConsensusHealthChecker.java | 86 ++++++++++++++++++++++++++++++---------
1 files changed, 67 insertions(+), 19 deletions(-)
diff --git a/src/ConsensusHealthChecker.java b/src/ConsensusHealthChecker.java
index 127e5f2..d85c5c5 100644
--- a/src/ConsensusHealthChecker.java
+++ b/src/ConsensusHealthChecker.java
@@ -522,7 +522,29 @@ public class ConsensusHealthChecker {
/* Write (huge) table with all flags. */
bw.write(" <br/>\n"
- + " <h3>Relay flags</h3>\n"
+ + " <h3>Relay flags</h3>\n"
+ + " <br/>\n"
+ + " <p>The semantics of flags written in the table is "
+ + "as follows:</p>\n"
+ + " <ul>\n"
+ + " <li><b>In vote and consensus:</b> Flag in vote "
+ + "matches flag in consensus, or relay is not listed in "
+ + "consensus (because it doesn't have the Running "
+ + "flag)</li>\n"
+ + " <li><b><font color=\"red\">Only in "
+ + "vote:</font></b> Flag in vote, but missing in the "
+ + "consensus, because there was no majority for the flag or "
+ + "the flag was invalidated (e.g., Named gets invalidated by "
+ + "Unnamed)</li>\n"
+ + " <li><b><font color=\"gray\"><s>Only in "
+ + "consensus:</s></font></b> Flag in consensus, but missing "
+ + "in a vote of a directory authority voting on this "
+ + "flag</li>\n"
+ + " <li><b><font color=\"blue\">In "
+ + "consensus:</font></b> Flag in consensus</li>\n"
+ + " </ul>\n"
+ + " <br/>\n"
+ + " <p>See also the summary below the table.</p>\n"
+ " <table border=\"0\" cellpadding=\"4\" "
+ "cellspacing=\"0\" summary=\"\">\n"
+ " <colgroup>\n"
@@ -543,7 +565,7 @@ public class ConsensusHealthChecker {
dir.substring(0, 5) + "." : dir;
bw.write("<td><br/><b>" + shortDirName + "</b></td>");
}
- bw.write("</tr>\n");
+ bw.write("<td><br/><b>consensus</b></td></tr>\n");
}
String relayKey = e.getKey();
SortedSet<String> votes = e.getValue();
@@ -591,18 +613,24 @@ public class ConsensusHealthChecker {
bw.write("<font color=\"red\">" + flag + "</font>");
sums = flagsLost;
}
- } else {
+ } else if (consensusFlags != null &&
+ votesKnownFlags.get(dir).contains(" " + flag) &&
+ consensusFlags.contains(" " + flag)) {
+ bw.write("<font color=\"gray\"><s>" + flag
+ + "</s></font>");
sums = flagsMissing;
}
- SortedMap<String, Integer> sum = null;
- if (sums.containsKey(dir)) {
- sum = sums.get(dir);
- } else {
- sum = new TreeMap<String, Integer>();
- sums.put(dir, sum);
+ if (sums != null) {
+ SortedMap<String, Integer> sum = null;
+ if (sums.containsKey(dir)) {
+ sum = sums.get(dir);
+ } else {
+ sum = new TreeMap<String, Integer>();
+ sums.put(dir, sum);
+ }
+ sum.put(flag, sum.containsKey(flag) ?
+ sum.get(flag) + 1 : 1);
}
- sum.put(flag, sum.containsKey(flag) ?
- sum.get(flag) + 1 : 1);
}
bw.write("</td>\n");
} else {
@@ -626,10 +654,28 @@ public class ConsensusHealthChecker {
}
bw.write(" </table>\n");
- /* Write bandwidth scanner status. */
+ /* Write summary of overlap between votes and consensus. */
bw.write(" <br/>\n"
+ " <h3>Overlap between votes and consensus</h3>\n"
+ " <br/>\n"
+ + " <p>The semantics of columns is similar to the "
+ + "table above:</p>\n"
+ + " <ul>\n"
+ + " <li><b>In vote and consensus:</b> Flag in vote "
+ + "matches flag in consensus, or relay is not listed in "
+ + "consensus (because it doesn't have the Running "
+ + "flag)</li>\n"
+ + " <li><b><font color=\"red\">Only in "
+ + "vote:</font></b> Flag in vote, but missing in the "
+ + "consensus, because there was no majority for the flag or "
+ + "the flag was invalidated (e.g., Named gets invalidated by "
+ + "Unnamed)</li>\n"
+ + " <li><b><font color=\"gray\"><s>Only in "
+ + "consensus:</s></font></b> Flag in consensus, but missing "
+ + "in a vote of a directory authority voting on this "
+ + "flag</li>\n"
+ + " </ul>\n"
+ + " <br/>\n"
+ " <table border=\"0\" cellpadding=\"4\" "
+ "cellspacing=\"0\" summary=\"\">\n"
+ " <colgroup>\n"
@@ -638,9 +684,9 @@ public class ConsensusHealthChecker {
+ " <col width=\"210\">\n"
+ " <col width=\"210\">\n"
+ " </colgroup>\n");
- bw.write(" <tr><td/><td><b>only in vote</b></td>"
- + "<td><b>in vote and consensus</b></td>"
- + "<td><b>only in consensus</b></td>\n");
+ bw.write(" <tr><td/><td><b>Only in vote</b></td>"
+ + "<td><b>In vote and consensus</b></td>"
+ + "<td><b>Only in consensus</b></td>\n");
for (String dir : allKnownVotes) {
boolean firstFlagWritten = false;
String[] flags = votesKnownFlags.get(dir).substring(
@@ -655,8 +701,9 @@ public class ConsensusHealthChecker {
}
if (flagsLost.containsKey(dir) &&
flagsLost.get(dir).containsKey(flag)) {
- bw.write(" <td>" + flagsLost.get(dir).get(flag)
- + " " + flag + "</td>\n");
+ bw.write(" <td><font color=\"red\"> "
+ + flagsLost.get(dir).get(flag) + " " + flag
+ + "</font></td>\n");
} else {
bw.write(" <td/>\n");
}
@@ -669,8 +716,9 @@ public class ConsensusHealthChecker {
}
if (flagsMissing.containsKey(dir) &&
flagsMissing.get(dir).containsKey(flag)) {
- bw.write(" <td>" + flagsMissing.get(dir).get(flag)
- + " " + flag + "</td>\n");
+ bw.write(" <td><font color=\"gray\"><s>"
+ + flagsMissing.get(dir).get(flag) + " " + flag
+ + "</s></font></td>\n");
} else {
bw.write(" <td/>\n");
}
--
1.6.5
More information about the tor-commits
mailing list