[tor-commits] [onionoo/master] Add build revision field to documents.

karsten at torproject.org karsten at torproject.org
Mon Oct 9 15:03:26 UTC 2017


commit 0f28ea28f53542b13beedd3d8255c0dfeccd7aec
Author: iwakeh <iwakeh at torproject.org>
Date:   Tue Sep 19 10:06:35 2017 +0000

    Add build revision field to documents.
    
    Implements task-23778.
---
 CHANGELOG.md                                       |  2 ++
 build.xml                                          |  2 +-
 .../torproject/onionoo/server/ResponseBuilder.java | 24 ++++++++++++++++++++++
 3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b9a171d..b7b379c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,8 @@
    - Only set the "running" field in a bridge's details document to
      true if the bridge is both contained in the last known bridge
      network status and has the "Running" flag assigned there.
+   - Add build_revision to documents, if available.
+   - Update to metrics-lib 2.1.1.
 
  * Minor changes
    - Remove placeholder page on index.html.
diff --git a/build.xml b/build.xml
index c8a4173..72f3ecc 100644
--- a/build.xml
+++ b/build.xml
@@ -11,7 +11,7 @@
   <property name="onionoo.protocol.version" value="4.1"/>
   <property name="release.version"
             value="${onionoo.protocol.version}-1.5.0-dev"/>
-  <property name="metricslibversion" value="2.1.0"/>
+  <property name="metricslibversion" value="2.1.1"/>
   <property name="jetty.version" value="-9.2.21.v20170120" />
   <property name="warfile"
             value="onionoo-${release.version}.war"/>
diff --git a/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java b/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java
index efa02c3..6b6b8ee 100644
--- a/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java
+++ b/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java
@@ -18,16 +18,37 @@ import com.google.gson.GsonBuilder;
 
 import org.apache.commons.lang3.StringUtils;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 
 public class ResponseBuilder {
 
+  private static final Logger logger =
+      LoggerFactory.getLogger(ResponseBuilder.class);
+
   private DocumentStore documentStore;
+  private String buildRevision;
 
+  /** Initialize document store and the build revision. */
   public ResponseBuilder() {
     this.documentStore = DocumentStoreFactory.getDocumentStore();
+    Properties buildProperties = new Properties();
+    try (InputStream is = getClass().getClassLoader()
+        .getResourceAsStream("onionoo.buildrevision.properties")) {
+      buildProperties.load(is);
+      buildRevision = buildProperties.getProperty("onionoo.build.revision",
+          null);
+    } catch (Exception ex) {
+      // We create documents anyway: only log a warning.
+      logger.warn("No build revision available.", ex);
+      buildRevision = null;
+    }
   }
 
   private String resourceType;
@@ -112,6 +133,9 @@ public class ResponseBuilder {
       this.write(pw, "\"next_major_version_scheduled\":\"%s\",\n",
           NEXT_MAJOR_VERSION_SCHEDULED);
     }
+    if (null != buildRevision) {
+      this.write(pw, "\"build_revision\":\"%s\",\n", buildRevision);
+    }
     this.write(pw, "\"relays_published\":\"%s\",\n",
         this.relaysPublishedString);
     if (this.relaysSkipped > 0) {



More information about the tor-commits mailing list