[tor-commits] [metrics-web/master] Discontinue routerdetail{.html|.png}.

karsten at torproject.org karsten at torproject.org
Mon Feb 27 09:19:54 UTC 2012


commit 9d86250bd5bde0301ed26a6ea805cb5682f08cf6
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Mon Feb 27 10:06:15 2012 +0100

    Discontinue routerdetail{.html|.png}.
    
    This page and graph were only linked from networkstatus.html which is now
    discontinued, too.
---
 rserve/graphs.R                                    |   32 ------
 .../ernie/web/GraphParameterChecker.java           |    1 -
 .../torproject/ernie/web/RouterDetailServlet.java  |  117 --------------------
 web/WEB-INF/routerdetail.jsp                       |   86 +--------------
 4 files changed, 2 insertions(+), 234 deletions(-)

diff --git a/rserve/graphs.R b/rserve/graphs.R
index 2900c02..61c12f7 100644
--- a/rserve/graphs.R
+++ b/rserve/graphs.R
@@ -899,35 +899,3 @@ plot_connbidirect <- function(start, end, path, dpi) {
   ggsave(filename = path, width = 8, height = 5, dpi = as.numeric(dpi))
 }
 
-## TODO The bandwidth history shouldn't be based on the consensus weights
-## which aren't bandwidths anymore, but either on the advertised bandwidth
-## contained in server descriptors or better on the bandwidth history
-## reported in extra-info descriptors.
-plot_routerdetail <- function(fingerprint, path) {
-  drv <- dbDriver("PostgreSQL")
-  con <- dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
-  q <- paste("SELECT AVG(bandwidth)::INTEGER AS bw, ",
-      "DATE(validafter) AS date ",
-      "FROM statusentry WHERE fingerprint = '", fingerprint, "' ",
-      "AND validafter > CURRENT_TIMESTAMP AT TIME ZONE 'UTC' - ",
-      "interval '1 week' GROUP BY DATE(validafter)", sep = "")
-  rs <- dbSendQuery(con, q)
-  routerdetail <- fetch(rs, n = -1)
-  ## TODO We should add NA's for missing dates.
-  dbDisconnect(con)
-  dbUnloadDriver(drv)
-  date_breaks <- date_breaks(
-    as.numeric(max(as.Date(routerdetail$date, "%Y-%m-%d")) -
-    min(as.Date(routerdetail$date, "%Y-%m-%d"))))
-  ggplot(routerdetail, aes(x = as.Date(date, "%Y-%m-%d"), y = bw)) +
-    geom_line(size = 1) +
-    scale_x_date(name = paste("\nThe Tor Project - ",
-        "https://metrics.torproject.org/", sep = ""),
-        format = date_breaks$format, major = date_breaks$major,
-        minor = date_breaks$minor) +
-    scale_y_continuous(name = "") +
-    opts(title = paste("Bandwidth history for ", fingerprint, "\n",
-        sep = ""))
-  ggsave(filename = path, width = 8, height = 5, dpi = 72)
-}
-
diff --git a/src/org/torproject/ernie/web/GraphParameterChecker.java b/src/org/torproject/ernie/web/GraphParameterChecker.java
index 81091e4..09a4f34 100644
--- a/src/org/torproject/ernie/web/GraphParameterChecker.java
+++ b/src/org/torproject/ernie/web/GraphParameterChecker.java
@@ -59,7 +59,6 @@ public class GraphParameterChecker {
     this.availableGraphs.put("torperf-failures",
          "start,end,source,filesize,filename,dpi");
     this.availableGraphs.put("connbidirect", "start,end,filename,dpi");
-    this.availableGraphs.put("routerdetail", "fingerprint,filename");
 
     this.knownParameterValues = new HashMap<String, String>();
     this.knownParameterValues.put("flag",
diff --git a/src/org/torproject/ernie/web/RouterDetailServlet.java b/src/org/torproject/ernie/web/RouterDetailServlet.java
index 677c293..5d71a5a 100644
--- a/src/org/torproject/ernie/web/RouterDetailServlet.java
+++ b/src/org/torproject/ernie/web/RouterDetailServlet.java
@@ -1,134 +1,17 @@
 package org.torproject.ernie.web;
 
 import java.io.*;
-import java.sql.*;
-import java.text.*;
-import java.util.*;
-import java.util.logging.*;
-import java.util.regex.*;
 
-import javax.naming.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
-import javax.sql.*;
 
 import org.apache.commons.lang.time.*;
 
 public class RouterDetailServlet extends HttpServlet {
 
-  private DataSource ds;
-
-  private Logger logger;
-
-  private Pattern fingerprintPattern;
-
-  public void init() {
-
-    /* Initialize logger. */
-    this.logger = Logger.getLogger(RouterDetailServlet.class.toString());
-
-    /* Look up data source. */
-    try {
-      Context cxt = new InitialContext();
-      this.ds = (DataSource) cxt.lookup("java:comp/env/jdbc/tordir");
-      this.logger.info("Successfully looked up data source.");
-    } catch (NamingException e) {
-      this.logger.log(Level.WARNING, "Could not look up data source", e);
-    }
-
-    /* Initialize fingerprint pattern. */
-    this.fingerprintPattern = Pattern.compile("^[0-9a-f]{40}$");
-  }
-
   public void doGet(HttpServletRequest request,
       HttpServletResponse response) throws IOException, ServletException {
 
-    /* Check that we were given a valid fingerprint. */
-    String fingerprintParameter = request.getParameter("fingerprint");
-    if (fingerprintParameter != null) {
-      fingerprintParameter = fingerprintParameter.toLowerCase();
-    }
-    if (fingerprintParameter == null ||
-        fingerprintParameter.length() != 40 ||
-        !fingerprintPattern.matcher(fingerprintParameter).matches()) {
-      response.sendError(HttpServletResponse.SC_BAD_REQUEST);
-      return;
-    }
-
-    String query = "SELECT statusentry.validafter, statusentry.nickname, "
-        + "statusentry.fingerprint, statusentry.descriptor, "
-        + "statusentry.published, statusentry.address, "
-        + "statusentry.orport, statusentry.dirport, "
-        + "statusentry.isauthority, statusentry.isbadexit, "
-        + "statusentry.isbaddirectory, statusentry.isexit, "
-        + "statusentry.isfast, statusentry.isguard, statusentry.ishsdir, "
-        + "statusentry.isnamed, statusentry.isstable, "
-        + "statusentry.isrunning, statusentry.isunnamed, "
-        + "statusentry.isvalid, statusentry.isv2dir, "
-        + "statusentry.isv3dir, statusentry.version, "
-        + "statusentry.bandwidth, statusentry.ports, "
-        + "descriptor.uptime, descriptor.platform, descriptor.rawdesc "
-        + "FROM statusentry JOIN descriptor "
-        + "ON descriptor.descriptor = statusentry.descriptor "
-        + "WHERE statusentry.validafter = "
-        + "(SELECT MAX(validafter) FROM consensus) "
-        + "AND statusentry.fingerprint = ?";
-
-    try {
-      long requestedConnection = System.currentTimeMillis();
-      Connection conn = this.ds.getConnection();
-      PreparedStatement ps = conn.prepareStatement(query);
-      ps.setString(1, fingerprintParameter);
-      ResultSet rs = ps.executeQuery();
-      if (rs.next()) {
-        request.setAttribute("validafter", rs.getTimestamp(1));
-        request.setAttribute("nickname", rs.getString(2));
-        request.setAttribute("fingerprint", rs.getString(3));
-        request.setAttribute("descriptor", rs.getString(4));
-        request.setAttribute("published", rs.getTimestamp(5));
-        request.setAttribute("address", rs.getString(6));
-        request.setAttribute("orport", rs.getInt(7));
-        request.setAttribute("dirport", rs.getInt(8));
-        request.setAttribute("isauthority", rs.getBoolean(9));
-        request.setAttribute("isbadexit", rs.getBoolean(10));
-        request.setAttribute("isbaddirectory", rs.getBoolean(11));
-        request.setAttribute("isexit", rs.getBoolean(12));
-        request.setAttribute("isfast", rs.getBoolean(13));
-        request.setAttribute("isguard", rs.getBoolean(14));
-        request.setAttribute("ishsdir", rs.getBoolean(15));
-        request.setAttribute("isnamed", rs.getBoolean(16));
-        request.setAttribute("isstable", rs.getBoolean(17));
-        request.setAttribute("isrunning", rs.getBoolean(18));
-        request.setAttribute("isunnamed", rs.getBoolean(19));
-        request.setAttribute("isvalid", rs.getBoolean(20));
-        request.setAttribute("isv2dir", rs.getBoolean(21));
-        request.setAttribute("isv3dir", rs.getBoolean(22));
-        request.setAttribute("version", rs.getString(23));
-        request.setAttribute("bandwidth", rs.getBigDecimal(24));
-        request.setAttribute("ports", rs.getString(25));
-        request.setAttribute("uptime", DurationFormatUtils.formatDuration(
-            rs.getBigDecimal(26).longValue() * 1000L, "d'd' HH:mm:ss"));
-        request.setAttribute("platform", rs.getString(27));
-      } else {
-        /* There were zero results in the set */
-        /* TODO Handle this case in a more user-friendly way. */
-        response.sendError(HttpServletResponse.SC_BAD_REQUEST);
-        this.logger.log(Level.WARNING, "Query with fingerprint = '"
-            + fingerprintParameter + "' returned zero results.  "
-            + "Returned BAD_REQUEST.");
-        return;
-      }
-      conn.close();
-      this.logger.info("Returned a database connection to the pool after "
-          + (System.currentTimeMillis() - requestedConnection)
-          + " millis.");
-
-    } catch (SQLException e)  {
-      response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-      this.logger.log(Level.WARNING, "Database error", e);
-      return;
-    }
-
     /* Forward the request to the JSP. */
     request.getRequestDispatcher("WEB-INF/routerdetail.jsp").forward(
         request, response);
diff --git a/web/WEB-INF/routerdetail.jsp b/web/WEB-INF/routerdetail.jsp
index 42fff88..416285d 100644
--- a/web/WEB-INF/routerdetail.jsp
+++ b/web/WEB-INF/routerdetail.jsp
@@ -12,90 +12,8 @@
     <%@ include file="banner.jsp"%>
     <div class="main-column">
       <h2>Tor Metrics Portal: Router Detail</h2>
-      <table>
-        <tr>
-         <td>validafter</td><td>${validafter}</td>
-        </tr>
-        <tr>
-         <td>nickname</td><td>${nickname}</td>
-        </tr>
-        <tr>
-         <td>bandwidth</td><td>${bandwidth}</td>
-        </tr>
-        <tr>
-         <td>fingerprint</td><td>${fingerprint}</td>
-        </tr>
-        <tr>
-         <td>published</td><td>${published}</td>
-        </tr>
-        <tr>
-         <td>address</td><td>${address}</td>
-        </tr>
-        <tr>
-         <td>uptime</td><td>${uptime}</td>
-        </tr>
-        <tr>
-         <td>orport</td><td>${orport}</td>
-        </tr>
-        <tr>
-         <td>dirport</td><td>${dirport}</td>
-        </tr>
-        <tr>
-         <td>isauthority</td><td>${isauthority}</td>
-        </tr>
-        <tr>
-         <td>isbadexit</td><td>${isbadexit}</td>
-        </tr>
-        <tr>
-         <td>isbaddirectory</td><td>${isbaddirectory}</td>
-        </tr>
-        <tr>
-         <td>isexit</td><td>${isexit}</td>
-        </tr>
-        <tr>
-         <td>isfast</td><td>${isfast}</td>
-        </tr>
-        <tr>
-         <td>isguard</td><td>${isguard}</td>
-        </tr>
-        <tr>
-         <td>ishsdir</td><td>${ishsdir}</td>
-        </tr>
-        <tr>
-         <td>isnamed</td><td>${isnamed}</td>
-        </tr>
-        <tr>
-         <td>isstable</td><td>${isstable}</td>
-        </tr>
-        <tr>
-         <td>isrunning</td><td>${isrunning}</td>
-        </tr>
-        <tr>
-         <td>isunnamed</td><td>${isunnamed}</td>
-        </tr>
-        <tr>
-         <td>isvalid</td><td>${isvalid}</td>
-        </tr>
-        <tr>
-         <td>isv2dir</td><td>${isv2dir}</td>
-        </tr>
-        <tr>
-         <td>isv3dir</td><td>${isv3dir}</td>
-        </tr>
-        <tr>
-         <td>version</td><td>${version}</td>
-        </tr>
-        <tr>
-         <td>ports</td><td>${ports}</td>
-        </tr>
-        <tr>
-         <td>platform</td><td>${platform}</td>
-        </tr>
-      </table>
-      <img src="routerdetail.png?fingerprint=${fingerprint}"
-           width="576"
-           height="360"
-           alt="Bandwidth history for ${fingerprint}"/>
+      <br>
+      <p>Sorry, this page has been discontinued.</p>
     </div>
   </div>
   <div class="bottom" id="bottom">



More information about the tor-commits mailing list