[or-cvs] [ernie/master 3/4] No need to make stats directory configurable.
karsten at torproject.org
karsten at torproject.org
Sat Feb 27 21:39:02 UTC 2010
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Sat, 27 Feb 2010 11:23:38 +0100
Subject: No need to make stats directory configurable.
Commit: 8b493d2d1e8bc190efa1607bcf91d55eb2035386
---
src/ArchiveWriter.java | 45 ++++++++---------
src/BridgeSnapshotReader.java | 24 ++++-----
src/BridgeStatsFileHandler.java | 85 ++++++++++++++++----------------
src/ConsensusStatsFileHandler.java | 93 ++++++++++++++++++------------------
src/DirreqStatsFileHandler.java | 47 ++++++++----------
src/GetTorProcessor.java | 12 ++--
src/Main.java | 21 ++++-----
src/RelayDescriptorParser.java | 54 +++++++++++----------
src/TorperfProcessor.java | 48 +++++++++---------
9 files changed, 210 insertions(+), 219 deletions(-)
diff --git a/src/ArchiveWriter.java b/src/ArchiveWriter.java
index 4d971e7..f13e8e8 100644
--- a/src/ArchiveWriter.java
+++ b/src/ArchiveWriter.java
@@ -6,18 +6,15 @@ import org.apache.commons.codec.digest.*;
import org.apache.commons.codec.binary.*;
public class ArchiveWriter {
- private String statsDir;
private SortedSet<String> v3DirectoryAuthorities;
private File missingDescriptorsFile;
private SortedSet<String> missingDescriptors;
private boolean missingDescriptorsFileModified = false;
private Logger logger;
- public ArchiveWriter(String statsDir,
- SortedSet<String> v3DirectoryAuthorities) {
- this.statsDir = statsDir;
+ public ArchiveWriter(SortedSet<String> v3DirectoryAuthorities) {
this.v3DirectoryAuthorities = v3DirectoryAuthorities;
- this.missingDescriptorsFile = new File(statsDir
- + "/archive-writer-parse-history");
+ this.missingDescriptorsFile = new File(
+ "stats/archive-writer-parse-history");
this.logger = Logger.getLogger(RelayDescriptorParser.class.getName());
SimpleDateFormat parseFormat =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -30,8 +27,8 @@ public class ArchiveWriter {
new SimpleDateFormat("yyyy/MM/");
descriptorFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
if (this.missingDescriptorsFile.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/archive-writer-parse-history...");
+ this.logger.info("Reading file "
+ + this.missingDescriptorsFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
this.missingDescriptorsFile));
@@ -108,16 +105,18 @@ public class ArchiveWriter {
}
}
br.close();
- this.logger.info("Finished reading file " + statsDir
- + "/archive-writer-parse-history");
+ this.logger.info("Finished reading file "
+ + this.missingDescriptorsFile.getAbsolutePath() + ".");
} catch (ParseException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/archive-writer-parse-history! This means that we might "
- + "forget to dowload descriptors we are missing.", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.missingDescriptorsFile.getAbsolutePath()
+ + "! This means that we might forget to dowload descriptors "
+ + "we are missing.", e);
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/archive-writer-parse-history! This means that we might "
- + "forget to dowload descriptors we are missing.", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.missingDescriptorsFile.getAbsolutePath()
+ + "! This means that we might forget to dowload descriptors "
+ + "we are missing.", e);
}
}
// add current consensus and votes to list
@@ -467,20 +466,20 @@ public class ArchiveWriter {
public void writeFile() {
if (this.missingDescriptorsFileModified) {
try {
- this.logger.info("Writing file " + this.statsDir
- + "/archive-writer-parse-history...");
- new File(this.statsDir).mkdirs();
+ this.logger.info("Writing file "
+ + this.missingDescriptorsFile.getAbsolutePath() + "...");
+ this.missingDescriptorsFile.getParentFile().mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(
this.missingDescriptorsFile));
for (String line : this.missingDescriptors) {
bw.write(line + "\n");
}
bw.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/archive-writer-parse-history.");
+ this.logger.info("Finished writing file "
+ + this.missingDescriptorsFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed writing " + this.statsDir
- + "/archive-writer-parse-history!", e);
+ this.logger.log(Level.WARNING, "Failed writing "
+ + this.missingDescriptorsFile.getAbsolutePath() + "!", e);
}
}
}
diff --git a/src/BridgeSnapshotReader.java b/src/BridgeSnapshotReader.java
index 1f87b44..8c47bee 100644
--- a/src/BridgeSnapshotReader.java
+++ b/src/BridgeSnapshotReader.java
@@ -10,19 +10,16 @@ import org.apache.commons.compress.archivers.tar.*;
*/
public class BridgeSnapshotReader {
public BridgeSnapshotReader(BridgeDescriptorParser bdp,
- String bridgeDirectoriesDir, String statsDirectory,
- Set<String> countries) {
+ String bridgeDirectoriesDir, Set<String> countries) {
Logger logger =
Logger.getLogger(BridgeSnapshotReader.class.getName());
SortedSet<String> parsed = new TreeSet<String>();
File bdDir = new File(bridgeDirectoriesDir);
- File pbdFile = new File(statsDirectory
- + "/parsed-bridge-directories");
+ File pbdFile = new File("stats/parsed-bridge-directories");
boolean modified = false;
if (bdDir.exists()) {
if (pbdFile.exists()) {
- logger.info("Reading file " + statsDirectory
- + "/parsed-bridge-directories...");
+ logger.info("Reading file " + pbdFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(pbdFile));
String line = null;
@@ -30,11 +27,11 @@ public class BridgeSnapshotReader {
parsed.add(line);
}
br.close();
- logger.info("Finished reading file " + statsDirectory
- + "/parsed-bridge-directories.");
+ logger.info("Finished reading file "
+ + pbdFile.getAbsolutePath() + ".");
} catch (IOException e) {
logger.log(Level.WARNING, "Failed reading file "
- + statsDirectory + "/parsed-bridge-directories!", e);
+ + pbdFile.getAbsolutePath() + "!", e);
return;
}
}
@@ -100,18 +97,19 @@ public class BridgeSnapshotReader {
logger.warning(sb.toString());
}
if (!parsed.isEmpty() && modified) {
- logger.info("Writing file " + pbdFile + "...");
+ logger.info("Writing file " + pbdFile.getAbsolutePath() + "...");
try {
- new File(statsDirectory).mkdirs();
+ pbdFile.getParentFile().mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(pbdFile));
for (String f : parsed) {
bw.append(f + "\n");
}
bw.close();
- logger.info("Finished writing file " + pbdFile + ".");
+ logger.info("Finished writing file " + pbdFile.getAbsolutePath()
+ + ".");
} catch (IOException e) {
logger.log(Level.WARNING, "Failed writing file "
- + pbdFile + "!", e);
+ + pbdFile.getAbsolutePath() + "!", e);
}
}
}
diff --git a/src/BridgeStatsFileHandler.java b/src/BridgeStatsFileHandler.java
index fa957e0..2d1fa88 100644
--- a/src/BridgeStatsFileHandler.java
+++ b/src/BridgeStatsFileHandler.java
@@ -6,9 +6,8 @@ import java.util.logging.*;
*
*/
public class BridgeStatsFileHandler {
- private String statsDir;
+ private File bridgeStatsRawFile;
private File bridgeStatsFile;
- private File bridgeStatsDateFile;
private File hashedRelayIdentitiesFile;
private SortedSet<String> countries;
private SortedSet<String> hashedRelays = new TreeSet<String>();
@@ -16,23 +15,21 @@ public class BridgeStatsFileHandler {
private boolean hashedRelaysModified;
private boolean observationsModified;
private Logger logger;
- public BridgeStatsFileHandler(String statsDir,
- SortedSet<String> countries) {
- this.statsDir = statsDir;
+ public BridgeStatsFileHandler(SortedSet<String> countries) {
+ this.bridgeStatsRawFile = new File("stats/bridge-stats-raw");
+ this.bridgeStatsFile = new File("stats/bridge-stats");
+ this.hashedRelayIdentitiesFile = new File(
+ "stats/hashed-relay-identities");
this.countries = countries;
- this.bridgeStatsFile = new File(statsDir + "/bridge-stats-raw");
- this.bridgeStatsDateFile = new File(statsDir + "/bridge-stats");
this.observations = new TreeMap<String, String>();
- this.hashedRelayIdentitiesFile = new File(statsDir
- + "/hashed-relay-identities");
this.logger =
Logger.getLogger(BridgeStatsFileHandler.class.getName());
- if (this.bridgeStatsFile.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/bridge-stats-raw...");
+ if (this.bridgeStatsRawFile.exists()) {
+ this.logger.info("Reading file "
+ + this.bridgeStatsRawFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
- this.bridgeStatsFile));
+ this.bridgeStatsRawFile));
String line = br.readLine();
if (line != null) {
String[] headers = line.split(",");
@@ -53,16 +50,16 @@ public class BridgeStatsFileHandler {
}
br.close();
this.observationsModified = false;
- this.logger.info("Finished reading file " + statsDir
- + "/bridge-stats-raw.");
+ this.logger.info("Finished reading file "
+ + this.bridgeStatsRawFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/bridge-stats-raw!", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.bridgeStatsRawFile.getAbsolutePath() + "!", e);
}
}
if (this.hashedRelayIdentitiesFile.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/hashed-relay-identities...");
+ this.logger.info("Reading file "
+ + this.hashedRelayIdentitiesFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
this.hashedRelayIdentitiesFile));
@@ -72,11 +69,11 @@ public class BridgeStatsFileHandler {
}
br.close();
this.hashedRelaysModified = false;
- this.logger.info("Finished reading file " + statsDir
- + "/hashed-relay-identities.");
+ this.logger.info("Finished reading file "
+ + this.hashedRelayIdentitiesFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/hashed-relay-identities!", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.hashedRelayIdentitiesFile.getAbsolutePath() + "!", e);
}
}
}
@@ -107,29 +104,29 @@ public class BridgeStatsFileHandler {
public void writeFile() {
if (!this.hashedRelays.isEmpty() && this.hashedRelaysModified) {
try {
- this.logger.info("Writing file " + this.statsDir
- + "/hashed-relay-identities...");
- new File(this.statsDir).mkdirs();
+ this.logger.info("Writing file "
+ + this.hashedRelayIdentitiesFile.getAbsolutePath() + "...");
+ this.hashedRelayIdentitiesFile.getParentFile().mkdirs();
BufferedWriter bwRelayIdentities = new BufferedWriter(
new FileWriter(this.hashedRelayIdentitiesFile));
for (String hashedRelay : this.hashedRelays) {
bwRelayIdentities.append(hashedRelay + "\n");
}
bwRelayIdentities.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/hashed-relay-identities.");
+ this.logger.info("Finished writing file "
+ + this.hashedRelayIdentitiesFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed writing " + this.statsDir
- + "/hashed-relay-identities!", e);
+ this.logger.log(Level.WARNING, "Failed writing "
+ + this.hashedRelayIdentitiesFile.getAbsolutePath() + "!", e);
}
}
if (!this.observations.isEmpty() && this.observationsModified) {
try {
- this.logger.info("Writing file " + this.statsDir
- + "/bridge-stats-raw...");
- new File(this.statsDir).mkdirs();
+ this.logger.info("Writing file "
+ + this.bridgeStatsRawFile.getAbsolutePath() + "...");
+ this.bridgeStatsRawFile.getParentFile().mkdirs();
BufferedWriter bwBridgeStats = new BufferedWriter(
- new FileWriter(this.bridgeStatsFile));
+ new FileWriter(this.bridgeStatsRawFile));
bwBridgeStats.append("bridge,date,time");
for (String c : this.countries) {
bwBridgeStats.append("," + c);
@@ -156,12 +153,13 @@ public class BridgeStatsFileHandler {
}
}
bwBridgeStats.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/bridge-stats-raw.");
- this.logger.info("Writing file " + this.statsDir
- + "/bridge-stats...");
+ this.logger.info("Finished writing file "
+ + this.bridgeStatsRawFile.getAbsolutePath() + ".");
+ this.logger.info("Writing file "
+ + this.bridgeStatsRawFile.getAbsolutePath() + "...");
+ this.bridgeStatsFile.getParentFile().mkdirs();
BufferedWriter bwBridgeStatsDate = new BufferedWriter(
- new FileWriter(this.bridgeStatsDateFile));
+ new FileWriter(this.bridgeStatsFile));
bwBridgeStatsDate.append("date");
for (String c : this.countries) {
bwBridgeStatsDate.append("," + c);
@@ -188,11 +186,12 @@ public class BridgeStatsFileHandler {
bwBridgeStatsDate.append("\n");
}
bwBridgeStatsDate.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/bridge-stats.");
+ this.logger.info("Finished writing file "
+ + this.bridgeStatsFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed writing " + this.statsDir
- + "/bridge-stats[-raw]!", e);
+ this.logger.log(Level.WARNING, "Failed writing "
+ + this.bridgeStatsRawFile.getAbsolutePath() + " or "
+ + this.bridgeStatsFile.getAbsolutePath() + "!", e);
}
}
}
diff --git a/src/ConsensusStatsFileHandler.java b/src/ConsensusStatsFileHandler.java
index 15f9169..e86d1b8 100644
--- a/src/ConsensusStatsFileHandler.java
+++ b/src/ConsensusStatsFileHandler.java
@@ -7,7 +7,6 @@ import java.util.logging.*;
*
*/
public class ConsensusStatsFileHandler {
- private String statsDir;
private File consensusStatsRawFile;
private File bridgeConsensusStatsRawFile;
private File consensusStatsFile;
@@ -20,20 +19,18 @@ public class ConsensusStatsFileHandler {
private boolean consensusResultsModified;
private boolean bridgeConsensusResultsModified;
private Logger logger;
- public ConsensusStatsFileHandler(String statsDir) {
- this.statsDir = statsDir;
+ public ConsensusStatsFileHandler() {
+ this.consensusStatsRawFile = new File("stats/consensus-stats-raw");
+ this.bridgeConsensusStatsRawFile = new File(
+ "stats/bridge-consensus-stats-raw");
+ this.consensusStatsFile = new File("stats/consensus-stats");
this.consensusResults = new TreeMap<String, String>();
- this.consensusStatsRawFile = new File(statsDir
- + "/consensus-stats-raw");
this.bridgeConsensusResults = new TreeMap<String, String>();
- this.bridgeConsensusStatsRawFile = new File(statsDir
- + "/bridge-consensus-stats-raw");
- this.consensusStatsFile = new File(statsDir + "/consensus-stats");
this.logger =
Logger.getLogger(ConsensusStatsFileHandler.class.getName());
if (this.consensusStatsRawFile.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/consensus-stats-raw...");
+ this.logger.info("Reading file "
+ + this.consensusStatsRawFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
this.consensusStatsRawFile));
@@ -42,16 +39,16 @@ public class ConsensusStatsFileHandler {
this.consensusResults.put(line.split(",")[0], line);
}
br.close();
- this.logger.info("Finished reading file " + statsDir
- + "/consensus-stats-raw.");
+ this.logger.info("Finished reading file "
+ + this.consensusStatsRawFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/consensus-stats-raw!", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.consensusStatsRawFile.getAbsolutePath() + "!", e);
}
}
if (this.bridgeConsensusStatsRawFile.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/bridge-consensus-stats-raw...");
+ this.logger.info("Reading file "
+ + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
this.bridgeConsensusStatsRawFile));
@@ -60,16 +57,17 @@ public class ConsensusStatsFileHandler {
bridgeConsensusResults.put(line.split(",")[0], line);
}
br.close();
- this.logger.info("Finished reading file " + statsDir
- + "/bridge-consensus-stats-raw.");
+ this.logger.info("Finished reading file "
+ + this.bridgeConsensusStatsRawFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/bridge-consensus-stats-raw!", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "!",
+ e);
}
}
if (this.consensusStatsFile.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/consensus-stats...");
+ this.logger.info("Reading file "
+ + this.consensusStatsFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
this.consensusStatsFile));
@@ -92,18 +90,18 @@ public class ConsensusStatsFileHandler {
}
}
br.close();
- this.logger.info("Finished reading file " + statsDir
- + "/consensus-stats.");
+ this.logger.info("Finished reading file "
+ + this.consensusStatsFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/consensus-stats.", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.consensusStatsFile.getAbsolutePath() + "!", e);
}
}
}
public void addConsensusResults(String validAfter, int exit, int fast,
int guard, int running, int stable) throws IOException {
- this.consensusResults.put(validAfter, validAfter + "," + exit + "," + fast
- + "," + guard + "," + running + "," + stable);
+ this.consensusResults.put(validAfter, validAfter + "," + exit + ","
+ + fast + "," + guard + "," + running + "," + stable);
this.consensusResultsModified = true;
}
public void addBridgeConsensusResults(String published, int running)
@@ -119,10 +117,10 @@ public class ConsensusStatsFileHandler {
BufferedWriter bwConsensusStatsRaw = null;
if (!this.consensusResults.isEmpty()) {
if (this.consensusResultsModified) {
- this.logger.info("Writing file " + this.statsDir
- + "/consensus-stats-raw...");
+ this.logger.info("Writing file "
+ + this.consensusStatsRawFile.getAbsolutePath() + "...");
writeConsensusStatsRaw = true;
- new File(this.statsDir).mkdirs();
+ this.consensusStatsRawFile.getParentFile().mkdirs();
bwConsensusStatsRaw = new BufferedWriter(
new FileWriter(this.consensusStatsRawFile));
}
@@ -174,23 +172,24 @@ public class ConsensusStatsFileHandler {
}
if (writeConsensusStatsRaw) {
bwConsensusStatsRaw.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/consensus-stats-raw.");
+ this.logger.info("Finished writing file "
+ + this.consensusStatsRawFile.getAbsolutePath() + ".");
}
}
} catch (IOException e) {
this.logger.log(Level.WARNING, "Failed writing file "
- + this.statsDir + "/consensus-stats-raw!", e);
+ + this.consensusStatsRawFile.getAbsolutePath() + "!", e);
return;
}
try {
BufferedWriter bwBridgeConsensusStatsRaw = null;
if (!this.bridgeConsensusResults.isEmpty()) {
if (this.bridgeConsensusResultsModified) {
- this.logger.info("Writing file " + this.statsDir
- + "/bridge-consensus-stats-raw...");
+ this.logger.info("Writing file "
+ + this.bridgeConsensusStatsRawFile.getAbsolutePath()
+ + "...");
writeBridgeConsensusStatsRaw = true;
- new File(this.statsDir).mkdirs();
+ this.bridgeConsensusStatsRawFile.getParentFile().mkdirs();
bwBridgeConsensusStatsRaw = new BufferedWriter(
new FileWriter(this.bridgeConsensusStatsRawFile));
}
@@ -227,20 +226,20 @@ public class ConsensusStatsFileHandler {
}
if (writeBridgeConsensusStatsRaw) {
bwBridgeConsensusStatsRaw.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/bridge-consensus-stats-raw.");
+ this.logger.info("Finished writing file "
+ + this.bridgeConsensusStatsRawFile.getAbsolutePath() + ".");
}
}
} catch (IOException e) {
this.logger.log(Level.WARNING, "Failed writing file "
- + this.statsDir + "/bridge-consensus-stats-raw!", e);
+ + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "!", e);
}
if (writeConsensusStats &&
!(this.csAggr.isEmpty() && this.bcsAggr.isEmpty())) {
- this.logger.info("Writing file " + this.statsDir
- + "/consensus-stats...");
+ this.logger.info("Writing file "
+ + this.consensusStatsFile.getAbsolutePath() + "...");
try {
- new File(this.statsDir).mkdirs();
+ this.consensusStatsFile.getParentFile().mkdirs();
BufferedWriter bwConsensusStats = new BufferedWriter(
new FileWriter(this.consensusStatsFile));
bwConsensusStats.append("date,exit,fast,guard,running,stable,"
@@ -278,14 +277,14 @@ public class ConsensusStatsFileHandler {
currentDate += 86400000L;
}
bwConsensusStats.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/consensus-stats.");
+ this.logger.info("Finished writing file "
+ + this.consensusStatsFile.getAbsolutePath() + ".");
} catch (IOException e) {
this.logger.log(Level.WARNING, "Failed writing file "
- + this.statsDir + "/consensus-stats!", e);
+ + this.consensusStatsFile.getAbsolutePath() + "!", e);
} catch (ParseException e) {
this.logger.log(Level.WARNING, "Failed writing file "
- + this.statsDir + "/consensus-stats!", e);
+ + this.consensusStatsFile.getAbsolutePath() + "!", e);
}
}
}
diff --git a/src/DirreqStatsFileHandler.java b/src/DirreqStatsFileHandler.java
index c9eba5e..a815701 100644
--- a/src/DirreqStatsFileHandler.java
+++ b/src/DirreqStatsFileHandler.java
@@ -7,22 +7,20 @@ import java.text.*;
*
*/
public class DirreqStatsFileHandler {
- private String statsDir;
private SortedSet<String> countries;
private File dirreqStatsFile;
private SortedMap<String, String> observations;
private boolean modified;
private Logger logger;
- public DirreqStatsFileHandler(String statsDir,
- SortedSet<String> countries) {
- this.statsDir = statsDir;
+ public DirreqStatsFileHandler(SortedSet<String> countries) {
+ this.dirreqStatsFile = new File("stats/dirreq-stats");
this.countries = countries;
- this.dirreqStatsFile = new File(statsDir + "/dirreq-stats");
this.observations = new TreeMap<String, String>();
this.logger =
Logger.getLogger(DirreqStatsFileHandler.class.getName());
if (this.dirreqStatsFile.exists()) {
- this.logger.info("Reading file " + statsDir + "/dirreq-stats...");
+ this.logger.info("Reading file "
+ + this.dirreqStatsFile.getAbsolutePath() + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
this.dirreqStatsFile));
@@ -47,11 +45,11 @@ public class DirreqStatsFileHandler {
}
}
br.close();
- this.logger.info("Finished reading file " + statsDir
- + "/dirreq-stats...");
+ this.logger.info("Finished reading file "
+ + this.dirreqStatsFile.getAbsolutePath() + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed reading file " + statsDir
- + "/dirreq-stats!", e);
+ this.logger.log(Level.WARNING, "Failed reading file "
+ + this.dirreqStatsFile.getAbsolutePath() + "!", e);
}
}
}
@@ -67,14 +65,11 @@ public class DirreqStatsFileHandler {
this.modified = true;
}
public void writeFile() {
- if (!this.modified) {
- return;
- }
- try {
- if (!this.observations.isEmpty()) {
- this.logger.info("Writing file " + this.statsDir
- + "/dirreq-stats...");
- new File(this.statsDir).mkdirs();
+ if (this.modified && !this.observations.isEmpty()) {
+ try {
+ this.logger.info("Writing file "
+ + this.dirreqStatsFile.getAbsolutePath() + "...");
+ this.dirreqStatsFile.getParentFile().mkdirs();
BufferedWriter bwDirreqStats = new BufferedWriter(
new FileWriter(this.dirreqStatsFile));
bwDirreqStats.append("directory,date");
@@ -105,15 +100,15 @@ public class DirreqStatsFileHandler {
bwDirreqStats.append(observation + "\n");
}
bwDirreqStats.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/dirreq-stats.");
+ this.logger.info("Finished writing file "
+ + this.dirreqStatsFile.getAbsolutePath() + ".");
+ } catch (IOException e) {
+ this.logger.log(Level.WARNING, "Failed writing file "
+ + this.dirreqStatsFile.getAbsolutePath() + "!", e);
+ } catch (ParseException e) {
+ this.logger.log(Level.WARNING, "Failed writing file "
+ + this.dirreqStatsFile.getAbsolutePath() + "!", e);
}
- } catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed writing file "
- + this.statsDir + "/dirreq-stats!", e);
- } catch (ParseException e) {
- this.logger.log(Level.WARNING, "Failed writing file "
- + this.statsDir + "/dirreq-stats!", e);
}
}
}
diff --git a/src/GetTorProcessor.java b/src/GetTorProcessor.java
index 910eea4..e8a6558 100644
--- a/src/GetTorProcessor.java
+++ b/src/GetTorProcessor.java
@@ -4,7 +4,7 @@ import java.util.*;
import java.util.logging.*;
public class GetTorProcessor {
- public GetTorProcessor(String statsDirectory, String gettorStatsUrl) {
+ public GetTorProcessor(String gettorStatsUrl) {
Logger logger = Logger.getLogger(TorperfProcessor.class.getName());
String unparsed = null;
try {
@@ -60,10 +60,10 @@ public class GetTorProcessor {
return;
}
- logger.info("Writing file " + statsDirectory + "/gettor-stats...");
+ File statsFile = new File("stats/gettor-stats");
+ logger.info("Writing file " + statsFile.getAbsolutePath() + "...");
try {
- File statsFile = new File(statsDirectory + "/gettor-stats");
- new File(statsDirectory).mkdirs();
+ statsFile.getParentFile().mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(statsFile));
bw.write("date");
for (String column : columns) {
@@ -80,8 +80,8 @@ public class GetTorProcessor {
}
bw.close();
} catch (IOException e) {
- logger.log(Level.WARNING, "Failed writing " + statsDirectory
- + "/gettor-stats!", e);
+ logger.log(Level.WARNING, "Failed writing "
+ + statsFile.getAbsolutePath() + "!", e);
}
}
}
diff --git a/src/Main.java b/src/Main.java
index cc05614..6bacca9 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -29,25 +29,23 @@ public class Main {
SortedSet<String> directories = config.getDirreqDirectories();
// Prepare stats file handlers (only if we are writing stats)
- String statsDirectory = "stats";
ConsensusStatsFileHandler csfh = config.getWriteConsensusStats() ?
- new ConsensusStatsFileHandler(statsDirectory) : null;
+ new ConsensusStatsFileHandler() : null;
BridgeStatsFileHandler bsfh = config.getWriteBridgeStats() ?
- new BridgeStatsFileHandler(statsDirectory, countries) : null;
+ new BridgeStatsFileHandler(countries) : null;
DirreqStatsFileHandler dsfh = config.getWriteDirreqStats() ?
- new DirreqStatsFileHandler(statsDirectory, countries) : null;
+ new DirreqStatsFileHandler(countries) : null;
// Prepare relay descriptor parser (only if we are writing the
// stats)
RelayDescriptorParser rdp = config.getWriteConsensusStats() &&
config.getWriteBridgeStats() && config.getWriteDirreqStats() ?
- new RelayDescriptorParser(statsDirectory, csfh, bsfh, dsfh,
- countries, directories) : null;
+ new RelayDescriptorParser(csfh, bsfh, dsfh, countries,
+ directories) : null;
// Prepare writing relay descriptor archive to disk
ArchiveWriter aw = config.getWriteDirectoryArchives() ?
- new ArchiveWriter(statsDirectory,
- config.getV3DirectoryAuthorities()) : null;
+ new ArchiveWriter(config.getV3DirectoryAuthorities()) : null;
// Import/download relay descriptors from the various sources
if (config.getImportCachedRelayDescriptors()) {
@@ -86,8 +84,7 @@ public class Main {
new SanitizedBridgesReader(bdp, "bridges", countries);
}
if (config.getImportBridgeSnapshots()) {
- new BridgeSnapshotReader(bdp, "bridge-directories",
- statsDirectory, countries);
+ new BridgeSnapshotReader(bdp, "bridge-directories", countries);
}
// Write updated stats files to disk
@@ -102,12 +99,12 @@ public class Main {
// Import and process torperf stats
if (config.getImportWriteTorperfStats()) {
- new TorperfProcessor(statsDirectory, "torperf");
+ new TorperfProcessor("torperf");
}
// Download and process GetTor stats
if (config.getDownloadProcessGetTorStats()) {
- new GetTorProcessor(statsDirectory, config.getGetTorStatsUrl());
+ new GetTorProcessor(config.getGetTorStatsUrl());
}
// Download exit list and store it to disk
diff --git a/src/RelayDescriptorParser.java b/src/RelayDescriptorParser.java
index b466103..c285d6c 100644
--- a/src/RelayDescriptorParser.java
+++ b/src/RelayDescriptorParser.java
@@ -10,8 +10,7 @@ import org.apache.commons.codec.binary.*;
* relevant contents to the stats file handlers.
*/
public class RelayDescriptorParser {
- private String statsDir;
- private File relayDescriptorParseHistory;
+ private File relayDescriptorParseHistoryFile;
private SortedMap<String, String> lastParsedExtraInfos;
private String lastParsedConsensus;
private boolean relayDescriptorParseHistoryModified = false;
@@ -21,13 +20,11 @@ public class RelayDescriptorParser {
private SortedSet<String> countries;
private SortedSet<String> directories;
private Logger logger;
- public RelayDescriptorParser(String statsDir,
- ConsensusStatsFileHandler csfh, BridgeStatsFileHandler bsfh,
- DirreqStatsFileHandler dsfh, SortedSet<String> countries,
- SortedSet<String> directories) {
- this.statsDir = statsDir;
- this.relayDescriptorParseHistory = new File(statsDir
- + "/relay-descriptor-parse-history");
+ public RelayDescriptorParser(ConsensusStatsFileHandler csfh,
+ BridgeStatsFileHandler bsfh, DirreqStatsFileHandler dsfh,
+ SortedSet<String> countries, SortedSet<String> directories) {
+ this.relayDescriptorParseHistoryFile = new File(
+ "stats/relay-descriptor-parse-history");
this.csfh = csfh;
this.bsfh = bsfh;
this.dsfh = dsfh;
@@ -36,12 +33,13 @@ public class RelayDescriptorParser {
this.logger = Logger.getLogger(RelayDescriptorParser.class.getName());
this.lastParsedConsensus = null;
this.lastParsedExtraInfos = new TreeMap<String, String>();
- if (this.relayDescriptorParseHistory.exists()) {
- this.logger.info("Reading file " + statsDir
- + "/relay-descriptor-parse-history...");
+ if (this.relayDescriptorParseHistoryFile.exists()) {
+ this.logger.info("Reading file "
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + "...");
try {
BufferedReader br = new BufferedReader(new FileReader(
- this.relayDescriptorParseHistory));
+ this.relayDescriptorParseHistoryFile));
String line = null;
while ((line = br.readLine()) != null) {
if (line.startsWith("consensus")) {
@@ -52,11 +50,13 @@ public class RelayDescriptorParser {
}
}
br.close();
- this.logger.info("Finished reading file " + statsDir
- + "/relay-descriptor-parse-history");
+ this.logger.info("Finished reading file "
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + ".");
} catch (IOException e) {
this.logger.log(Level.WARNING, "Failed reading file "
- + statsDir + "/relay-descriptor-parse-history!", e);
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + "!", e);
}
}
}
@@ -175,7 +175,8 @@ public class RelayDescriptorParser {
}
} catch (ParseException e) {
this.logger.log(Level.WARNING, "Failed parsing timestamp in "
- + this.statsDir + "/relay-descriptor-parse-history!", e);
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + "!", e);
}
}
}
@@ -184,11 +185,12 @@ public class RelayDescriptorParser {
public void writeFile() {
if (this.relayDescriptorParseHistoryModified) {
try {
- this.logger.info("Writing file " + this.statsDir
- + "/relay-descriptor-parse-history...");
- new File(this.statsDir).mkdirs();
+ this.logger.info("Writing file "
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + "...");
+ this.relayDescriptorParseHistoryFile.getParentFile().mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(
- this.relayDescriptorParseHistory));
+ this.relayDescriptorParseHistoryFile));
bw.write("type,source,published\n");
if (this.lastParsedConsensus != null) {
bw.write("consensus,NA," + this.lastParsedConsensus + "\n");
@@ -199,11 +201,13 @@ public class RelayDescriptorParser {
+ "\n");
}
bw.close();
- this.logger.info("Finished writing file " + this.statsDir
- + "/relay-descriptor-parse-history.");
+ this.logger.info("Finished writing file "
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + ".");
} catch (IOException e) {
- this.logger.log(Level.WARNING, "Failed writing " + this.statsDir
- + "/relay-descriptor-parse-history!", e);
+ this.logger.log(Level.WARNING, "Failed writing "
+ + this.relayDescriptorParseHistoryFile.getAbsolutePath()
+ + "!", e);
}
}
}
diff --git a/src/TorperfProcessor.java b/src/TorperfProcessor.java
index b7ac752..c99d75b 100644
--- a/src/TorperfProcessor.java
+++ b/src/TorperfProcessor.java
@@ -4,35 +4,34 @@ import java.util.*;
import java.util.logging.*;
public class TorperfProcessor {
- public TorperfProcessor(String statsDirectory,
- String torperfDirectory) {
+ public TorperfProcessor(String torperfDirectory) {
Logger logger = Logger.getLogger(TorperfProcessor.class.getName());
- File rawFile = new File(statsDirectory + "/torperf-raw");
- File statsFile = new File(statsDirectory + "/torperf-stats");
+ File rawFile = new File("stats/torperf-raw");
+ File statsFile = new File("stats/torperf-stats");
File torperfDir = new File(torperfDirectory);
SortedMap<String, String> rawObs = new TreeMap<String, String>();
SortedMap<String, String> stats = new TreeMap<String, String>();
try {
if (rawFile.exists()) {
- logger.info("Reading file " + statsDirectory + "/torperf-raw...");
+ logger.info("Reading file " + rawFile.getAbsolutePath() + "...");
BufferedReader br = new BufferedReader(new FileReader(rawFile));
String line = br.readLine(); // ignore header
while ((line = br.readLine()) != null) {
if (line.split(",").length != 4) {
- logger.warning("Corrupt line in " + statsDirectory
- + "/torperf-raw!");
+ logger.warning("Corrupt line in " + rawFile.getAbsolutePath()
+ + "!");
break;
}
String key = line.substring(0, line.lastIndexOf(","));
rawObs.put(key, line);
}
br.close();
- logger.info("Finished reading file " + statsDirectory
- + "/torperf-raw.");
+ logger.info("Finished reading file " + rawFile.getAbsolutePath()
+ + ".");
}
if (statsFile.exists()) {
- logger.info("Reading file " + statsDirectory
- + "/torperf-stats...");
+ logger.info("Reading file " + statsFile.getAbsolutePath()
+ + "...");
BufferedReader br = new BufferedReader(new FileReader(statsFile));
String line = br.readLine(); // ignore header
while ((line = br.readLine()) != null) {
@@ -40,8 +39,8 @@ public class TorperfProcessor {
stats.put(key, line);
}
br.close();
- logger.info("Finished reading file " + statsDirectory
- + "/torperf-stats.");
+ logger.info("Finished reading file " + statsFile.getAbsolutePath()
+ + ".");
}
if (torperfDir.exists()) {
logger.info("Importing files in " + torperfDirectory + "/...");
@@ -89,8 +88,8 @@ public class TorperfProcessor {
+ "/.");
}
if (rawObs.size() > 0) {
- logger.info("Writing file " + statsDirectory + "/torperf-raw...");
- new File(statsDirectory).mkdirs();
+ logger.info("Writing file " + rawFile.getAbsolutePath() + "...");
+ rawFile.getParentFile().mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(rawFile));
bw.append("source,date,start,completemillis\n");
String tempSourceDate = null;
@@ -124,13 +123,13 @@ public class TorperfProcessor {
}
}
bw.close();
- logger.info("Finished writing file " + statsDirectory
- + "/torperf-raw.");
+ logger.info("Finished writing file " + rawFile.getAbsolutePath()
+ + ".");
}
if (stats.size() > 0) {
- logger.info("Writing file " + statsDirectory
- + "/torperf-stats...");
- new File(statsDirectory).mkdirs();
+ logger.info("Writing file " + statsFile.getAbsolutePath()
+ + "...");
+ statsFile.getParentFile().mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(statsFile));
bw.append("source,date,q1,md,q3\n");
// TODO should we handle missing days?
@@ -138,12 +137,13 @@ public class TorperfProcessor {
bw.append(s + "\n");
}
bw.close();
- logger.info("Finished writing file " + statsDirectory
- + "/torperf-stats.");
+ logger.info("Finished writing file " + statsFile.getAbsolutePath()
+ + ".");
}
} catch (IOException e) {
- logger.log(Level.WARNING, "Failed writing " + statsDirectory
- + "/torperf-{raw|stats}!", e);
+ logger.log(Level.WARNING, "Failed writing "
+ + rawFile.getAbsolutePath() + " or "
+ + statsFile.getAbsolutePath() + "!", e);
}
}
}
--
1.6.5
More information about the tor-commits
mailing list