[tor-commits] [exonerator/master] Switch to using metrics-lib's DescriptorCollector.

karsten at torproject.org karsten at torproject.org
Sun Jun 28 06:40:18 UTC 2015


commit fa377c3535e9a0fd4ed6bcd051b89f01ebf30739
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Thu May 28 10:36:49 2015 +0200

    Switch to using metrics-lib's DescriptorCollector.
---
 .gitmodules                                               |    3 +++
 build.xml                                                 |    9 ++++++++-
 deps/metrics-lib                                          |    1 +
 run-exonerator.sh                                         |    3 ---
 .../torproject/exonerator/ExoneraTorDatabaseImporter.java |   13 +++++++++++++
 5 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..c6b6388
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "deps/metrics-lib"]
+	path = deps/metrics-lib
+	url = https://git.torproject.org/metrics-lib
diff --git a/build.xml b/build.xml
index b6a1e53..3064bf8 100644
--- a/build.xml
+++ b/build.xml
@@ -11,6 +11,9 @@
   <property name="warfile" value="exonerator.war"/>
   <path id="classpath">
     <pathelement path="${classes}"/>
+    <fileset dir="deps/metrics-lib">
+      <include name="descriptor.jar"/>
+    </fileset>
     <fileset dir="/usr/share/java">
       <include name="commons-codec.jar"/>
       <include name="postgresql-jdbc3.jar"/>
@@ -25,8 +28,12 @@
     <mkdir dir="${classes}"/>
   </target>
 
+  <target name="metrics-lib">
+    <ant dir="deps/metrics-lib"/>
+  </target>
+
   <!-- Compile all servlets and plain Java classes. -->
-  <target name="compile" depends="init">
+  <target name="compile" depends="metrics-lib, init">
     <javac destdir="${classes}"
            srcdir="${sources}"
            source="1.5"
diff --git a/deps/metrics-lib b/deps/metrics-lib
new file mode 160000
index 0000000..bd18dd0
--- /dev/null
+++ b/deps/metrics-lib
@@ -0,0 +1 @@
+Subproject commit bd18dd0d2f788d1d4ee7acbac5032e97264bb855
diff --git a/run-exonerator.sh b/run-exonerator.sh
index 6cd34bf..d090ec9 100755
--- a/run-exonerator.sh
+++ b/run-exonerator.sh
@@ -1,6 +1,3 @@
 #!/bin/bash
-rsync -arz --delete metrics.torproject.org::metrics-recent/relay-descriptors/consensuses exonerator-import/
-rsync -arz --delete metrics.torproject.org::metrics-recent/relay-descriptors/server-descriptors exonerator-import/
-rsync -arz --delete metrics.torproject.org::metrics-recent/exit-lists exonerator-import/
 ant run | grep "\[java\]"
 
diff --git a/src/org/torproject/exonerator/ExoneraTorDatabaseImporter.java b/src/org/torproject/exonerator/ExoneraTorDatabaseImporter.java
index 348c04c..6111888 100644
--- a/src/org/torproject/exonerator/ExoneraTorDatabaseImporter.java
+++ b/src/org/torproject/exonerator/ExoneraTorDatabaseImporter.java
@@ -32,6 +32,8 @@ import java.util.TimeZone;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.torproject.descriptor.DescriptorCollector;
+import org.torproject.descriptor.DescriptorSourceFactory;
 
 /* Import Tor descriptors into the ExoneraTor database. */
 public class ExoneraTorDatabaseImporter {
@@ -42,6 +44,7 @@ public class ExoneraTorDatabaseImporter {
     openDatabaseConnection();
     prepareDatabaseStatements();
     createLockFile();
+    fetchDescriptors();
     readImportHistoryToMemory();
     parseDescriptors();
     writeImportHistoryToDisk();
@@ -150,6 +153,16 @@ public class ExoneraTorDatabaseImporter {
     }
   }
 
+  /* Fetch recent descriptors from CollecTor. */
+  private static void fetchDescriptors() {
+    DescriptorCollector collector =
+        DescriptorSourceFactory.createDescriptorCollector();
+    collector.collectDescriptors("https://collector.torproject.org",
+        new String[] { "/recent/relay-descriptors/consensuses/",
+        "/recent/relay-descriptors/server-descriptors/",
+        "/recent/exit-lists/" }, 0L, new File(importDirString), true);
+  }
+
   /* Last and next parse histories containing paths of parsed files and
    * last modified times. */
   private static Map<String, Long>



More information about the tor-commits mailing list