Author: [log in to unmask]
Date: Sat Mar 7 17:21:17 2015
New Revision: 2364
Log:
Merge r2359 through r2363 into prod branch.
Modified:
java/branches/prod/ (props changed)
java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/AddCommand.java
java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java
java/branches/prod/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
java/branches/prod/integration-tests/ (props changed)
java/branches/prod/integration-tests/src/test/resources/org/hps/steering/test/MockDataReconTest.lcsim
Modified: java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/AddCommand.java
=============================================================================
--- java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/AddCommand.java (original)
+++ java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/AddCommand.java Sat Mar 7 17:21:17 2015
@@ -6,6 +6,7 @@
import org.hps.conditions.api.ConditionsObjectException;
import org.hps.conditions.api.ConditionsRecord;
import org.hps.conditions.api.FieldValueMap;
+import org.hps.conditions.database.DatabaseConditionsManager;
/**
* This is a command for the conditions CLI that will add a conditions record,
@@ -19,52 +20,114 @@
PrintStream ps = System.out;
AddCommand() {
- super("add", "Add a conditions record");
- options.addOption("r", true, "The starting run number");
+ super("add", "Add a conditions record to associate a collection to a run range");
+ options.addOption("r", true, "The starting run number (required)");
options.getOption("r").setRequired(true);
- options.addOption("e", true, "The ending run number");
- options.addOption("k", true, "The conditions key");
- options.addOption("t", true, "The table name");
+ options.addOption("e", true, "The ending run number (default is starting run number)");
+ options.addOption("t", true, "The table name (required)");
options.getOption("t").setRequired(true);
- options.addOption("T", true, "A tag value");
- options.addOption("u", true, "Your user name");
- options.addOption("c", true, "The collection ID");
+ options.addOption("c", true, "The collection ID (required)");
options.getOption("c").setRequired(true);
- options.addOption("m", true, "The notes");
+ options.addOption("T", true, "A tag value (optional)");
+ options.addOption("u", true, "Your user name (optional)");
+ options.addOption("m", true, "The notes about this conditions set (optional)");
}
void execute(String[] arguments) {
super.execute(arguments);
-
- int runStart = Integer.parseInt(commandLine.getOptionValue("r"));
+
+ // This command has 3 required options.
+ if (commandLine.getOptions().length == 0) {
+ this.printUsage();
+ System.exit(1);
+ }
+
+ // Run start (required).
+ int runStart;
+ if (commandLine.hasOption("r")) {
+ runStart = Integer.parseInt(commandLine.getOptionValue("r"));
+ } else {
+ throw new RuntimeException("Missing required -r option with run number.");
+ }
+
+ // Run end.
int runEnd = runStart;
if (commandLine.hasOption("e")) {
runEnd = Integer.parseInt(commandLine.getOptionValue("e"));
}
-
- String tableName = commandLine.getOptionValue("t");
+
+ // Name of table (required).
+ String tableName;
+ if (commandLine.hasOption("t")) {
+ tableName = commandLine.getOptionValue("t");
+ } else {
+ throw new RuntimeException("Missing required -t argument with table name");
+ }
String name = tableName;
- if (commandLine.hasOption("k")) {
- name = commandLine.getOptionValue("k");
+
+ // Collection ID (required).
+ int collectionId;
+ if (commandLine.hasOption("c")) {
+ collectionId = Integer.parseInt(commandLine.getOptionValue("c"));
+ } else {
+ throw new RuntimeException("Missing required -c argument with collection ID");
}
+ // User name.
String createdBy = System.getProperty("user.name");
if (commandLine.hasOption("u")) {
createdBy = commandLine.getOptionValue("u");
}
+ // Tag to assign (optional).
String tag = null;
if (commandLine.hasOption("T")) {
tag = commandLine.getOptionValue("T");
}
+ // Notes (optional).
String notes = null;
if (commandLine.hasOption("m")) {
notes = commandLine.getOptionValue("m");
}
- int collectionId = Integer.parseInt(commandLine.getOptionValue("c"));
+ // Create the conditions record to insert.
+ ConditionsRecord conditionsRecord = createConditionsRecord(
+ runStart,
+ runEnd,
+ tableName,
+ name,
+ collectionId,
+ createdBy,
+ tag,
+ notes);
+ try {
+ boolean createdConnection = false;
+ DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance();
+ if (!DatabaseConditionsManager.getInstance().isConnected()) {
+ createdConnection = manager.openConnection();
+ }
+ conditionsRecord.insert();
+ manager.closeConnection(createdConnection);
+ } catch (ConditionsObjectException e) {
+ throw new RuntimeException("An error occurred while adding a conditions record.", e);
+ }
+ ps.println("successfully added conditions record ...");
+ ps.println(conditionsRecord);
+ }
+ /**
+ * @param runStart
+ * @param runEnd
+ * @param tableName
+ * @param name
+ * @param collectionId
+ * @param createdBy
+ * @param tag
+ * @param notes
+ * @return
+ */
+ private ConditionsRecord createConditionsRecord(int runStart, int runEnd, String tableName, String name, int collectionId, String createdBy, String tag, String notes) {
ConditionsRecord conditionsRecord = new ConditionsRecord();
FieldValueMap fieldValues = new FieldValueMap();
fieldValues.put("run_start", runStart);
@@ -81,13 +144,6 @@
}
conditionsRecord.setFieldValues(fieldValues);
fieldValues.put("created", new Date());
- try {
- conditionsRecord.insert();
- } catch (ConditionsObjectException e) {
- throw new RuntimeException("An error occurred while adding a conditions record.", e);
- }
- ps.println("successfully added conditions record ...");
- ps.println(conditionsRecord);
+ return conditionsRecord;
}
-
-}
+}
Modified: java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java
=============================================================================
--- java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java (original)
+++ java/branches/prod/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java Sat Mar 7 17:21:17 2015
@@ -42,7 +42,7 @@
@Override
public void execute(String[] arguments) {
super.execute(arguments);
-
+
String fileName = commandLine.getOptionValue("f");
if (fileName == null) {
throw new IllegalArgumentException("Missing file argument.");
@@ -58,6 +58,11 @@
DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance();
+ boolean openedConnection = false;
+ if (!conditionsManager.isConnected()) {
+ openedConnection = conditionsManager.openConnection();
+ }
+
int collectionID;
if (commandLine.getOptionValue("c") != null) {
collectionID = Integer.parseInt(commandLine.getOptionValue("c"));
@@ -78,6 +83,7 @@
// FIXME: This call should go through an object API like ConditionsObjectCollection.insert rather than the manager directly.
List<Integer> IDs = conditionsManager.updateQuery(insertSql);
System.out.println("Inserted " + IDs.size() + " new rows into table " + tableName + " with collection_id " + collectionID);
+ conditionsManager.closeConnection(openedConnection);
}
void parseFile(String fileName, List<String> columnNames, List<List<String>> rows) {
Modified: java/branches/prod/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
=============================================================================
--- java/branches/prod/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java (original)
+++ java/branches/prod/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java Sat Mar 7 17:21:17 2015
@@ -369,9 +369,6 @@
*/
public int getNextCollectionID(String tableName) {
boolean openedConnection = openConnection();
- TableMetaData tableData = tableRegistry.findByTableName(tableName);
- if (tableData == null)
- throw new IllegalArgumentException("There is no meta data for table " + tableName);
ResultSet resultSet = selectQuery("SELECT MAX(collection_id)+1 FROM " + tableName);
int collectionId = 1;
try {
Modified: java/branches/prod/integration-tests/src/test/resources/org/hps/steering/test/MockDataReconTest.lcsim
=============================================================================
--- java/branches/prod/integration-tests/src/test/resources/org/hps/steering/test/MockDataReconTest.lcsim (original)
+++ java/branches/prod/integration-tests/src/test/resources/org/hps/steering/test/MockDataReconTest.lcsim Sat Mar 7 17:21:17 2015
@@ -10,8 +10,6 @@
</control>
<execute>
<driver name="EventMarkerDriver"/>
- <driver name="ConditionsDriver" />
- <driver name="SvtSensorSetup" />
<driver name="RawTrackerHitSensorSetup"/>
<driver name="RawTrackerHitFitterDriver" />
<driver name="TrackerHitDriver"/>
@@ -26,10 +24,8 @@
<driver name="CleanupDriver"/>
</execute>
<drivers>
- <driver name="ConditionsDriver" type="org.hps.conditions.ConditionsDriver" />
- <driver name="SvtSensorSetup" type="org.hps.recon.tracking.SvtSensorSetup" />
<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
- <eventInterval>10</eventInterval>
+ <eventInterval>1</eventInterval>
</driver>
<driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup"/>
<driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver">
@@ -55,7 +51,6 @@
<isMC>false</isMC>
<gblFileName></gblFileName>
</driver>
-
<driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
<ecalCollectionName>EcalCalHits</ecalCollectionName>
<use2014Gain>true</use2014Gain>
|