Author: [log in to unmask]
Date: Mon May 4 13:56:13 2015
New Revision: 2894
Log:
Updates to EVIO file crawler.
Modified:
java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileCrawler.java
java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileList.java
java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileVisitor.java
java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/RunLog.java
Modified: java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileCrawler.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileCrawler.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileCrawler.java Mon May 4 13:56:13 2015
@@ -166,9 +166,10 @@
runs.printRunSummaries();
}
- // Insert run summary into run_log table.
+ // Insert run information into database.
if (this.update) {
- runs.update();
+ // Update run log.
+ runs.insert();
}
}
Modified: java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileList.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileList.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileList.java Mon May 4 13:56:13 2015
@@ -2,22 +2,32 @@
import java.io.File;
import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.logging.Logger;
import org.jlab.coda.jevio.EvioException;
import org.jlab.coda.jevio.EvioReader;
+import org.lcsim.util.log.LogUtil;
class EvioFileList extends ArrayList<File> {
+ private static final Logger LOGGER = LogUtil.create(EvioFileList.class);
+
void cache() {
+ LOGGER.info("running cache commands ...");
for (final File file : this) {
EvioFileUtilities.cache(file);
}
+ LOGGER.info("done running cache commands");
}
int computeTotalEvents() {
+ LOGGER.info("computing total events ...");
int totalEvents = 0;
for (final File file : this) {
EvioReader reader = null;
@@ -36,6 +46,7 @@
}
}
}
+ LOGGER.info("done computing total events");
return totalEvents;
}
@@ -53,4 +64,22 @@
this.clear();
this.addAll(fileList);
}
+
+ void insert(final Connection connection, final int run) throws SQLException {
+ LOGGER.info("updating file list ...");
+ PreparedStatement filesStatement = null;
+ filesStatement = connection
+ .prepareStatement("INSERT INTO run_log_files (run, directory, name) VALUES(?, ?, ?)");
+ LOGGER.info("inserting files from run " + run + " into database");
+ for (final File file : this) {
+ LOGGER.info("creating update statement for " + file.getPath());
+ filesStatement.setInt(1, run);
+ filesStatement.setString(2, file.getParentFile().getPath());
+ filesStatement.setString(3, file.getName());
+ LOGGER.info("executing statement: " + filesStatement);
+ filesStatement.executeUpdate();
+ // connection.commit();
+ }
+ LOGGER.info("run_log_files was updated!");
+ }
}
Modified: java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileVisitor.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileVisitor.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/EvioFileVisitor.java Mon May 4 13:56:13 2015
@@ -58,7 +58,7 @@
this.runs.getRunSummary(run).addFile(file);
} else {
- LOGGER.fine("rejected file: " + file.getPath());
+ LOGGER.info("rejected file: " + file.getPath());
}
return FileVisitResult.CONTINUE;
}
Modified: java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/RunLog.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/RunLog.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/jeremym/crawler/RunLog.java Mon May 4 13:56:13 2015
@@ -39,6 +39,65 @@
return runList;
}
+ void insert() {
+
+ LOGGER.info("inserting runs into run_log ...");
+ final ConnectionParameters cp = new ConnectionParameters("root", "derp", "hps_run_db", "localhost");
+ final Connection connection = cp.createConnection();
+ try {
+ connection.setAutoCommit(false);
+
+ insertRunLog(connection);
+
+ insertFiles(connection);
+
+ connection.commit();
+
+ } catch (final SQLException e) {
+ LOGGER.log(Level.SEVERE, "rolling back transaction", e);
+ try {
+ connection.rollback();
+ } catch (final SQLException e2) {
+ throw new RuntimeException(e);
+ }
+ } finally {
+ if (connection != null) {
+ try {
+ connection.setAutoCommit(true);
+ connection.close();
+ } catch (final SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
+
+ void insertFiles(final Connection connection) throws SQLException {
+ for (final int run : getSortedRunNumbers()) {
+ getRunSummary(run).getFiles().insert(connection, run);
+ }
+ }
+
+ void insertRunLog(final Connection connection) throws SQLException {
+ PreparedStatement runLogStatement = null;
+ runLogStatement = connection
+ .prepareStatement("INSERT INTO run_log (run, start_date, end_date, nevents, nfiles, end_ok, last_updated) VALUES(?, ?, ?, ?, ?, ?, NOW())");
+ for (final Integer run : getSortedRunNumbers()) {
+ LOGGER.info("preparing to insert run " + run + " into database ..");
+ final RunSummary runSummary = this.runs.get(run);
+ runLogStatement.setInt(1, run);
+ runLogStatement.setTimestamp(2, new java.sql.Timestamp(runSummary.getStartDate().getTime()));
+ runLogStatement.setTimestamp(3, new java.sql.Timestamp(runSummary.getEndDate().getTime()));
+ runLogStatement.setInt(4, runSummary.getTotalEvents());
+ runLogStatement.setInt(5, runSummary.getFiles().size());
+ runLogStatement.setBoolean(6, runSummary.isEndOkay());
+ runLogStatement.executeUpdate();
+ // connection.commit();
+ LOGGER.info("committed run " + run + " to run_log");
+ }
+ LOGGER.info("run_log was updated!");
+ }
+
void printRunSummaries() {
for (final int run : this.runs.keySet()) {
this.runs.get(run).printRunSummary(System.out);
@@ -50,49 +109,4 @@
this.runs.get(run).sortFiles();
}
}
-
- void update() {
- LOGGER.info("updating database from run log ...");
- final ConnectionParameters cp = new ConnectionParameters("root", "derp", "hps_run_db", "localhost");
- Connection connection = null;
- PreparedStatement runLogStatement = null;
- try {
- connection = cp.createConnection();
- connection.setAutoCommit(false);
- runLogStatement = connection
- .prepareStatement("INSERT INTO run_log (run, start_date, end_date, nevents, nfiles, end_ok, last_updated) VALUES(?, ?, ?, ?, ?, ?, NOW())");
- for (final Integer run : getSortedRunNumbers()) {
- LOGGER.info("inserting run " + run + " into database");
- final RunSummary runSummary = this.runs.get(run);
- runLogStatement.setInt(1, run);
- runLogStatement.setTimestamp(2, new java.sql.Timestamp(runSummary.getStartDate().getTime()));
- runLogStatement.setTimestamp(3, new java.sql.Timestamp(runSummary.getEndDate().getTime()));
- runLogStatement.setInt(4, runSummary.getTotalEvents());
- runLogStatement.setInt(5, runSummary.getFiles().size());
- runLogStatement.setBoolean(6, runSummary.isEndOkay());
- runLogStatement.executeUpdate();
- connection.commit();
- }
- } catch (final SQLException e) {
- LOGGER.log(Level.SEVERE, "rolling back transaction", e);
- try {
- connection.rollback();
- } catch (final SQLException e2) {
- throw new RuntimeException(e);
- }
- } finally {
- if (connection != null) {
- try {
- connection.setAutoCommit(true);
- if (!connection.isClosed()) {
- connection.close();
- }
- } catch (final SQLException e) {
- e.printStackTrace();
- }
- }
- }
- LOGGER.info("database was updated!");
- }
-
}
|