diff --git a/datastore_server/dist/datastore_server.sh b/datastore_server/dist/datastore_server.sh index 64efcec4ba40e8287b78f31df469234c2d467235..37fe17b19e7d60fba2c12db649929411e79df7c8 100755 --- a/datastore_server/dist/datastore_server.sh +++ b/datastore_server/dist/datastore_server.sh @@ -265,6 +265,8 @@ case "$command" in echo " $0 debug-db-connections on / off - switch on / off database connection debug logging" echo " $0 record-stacktrace-db-connections on / off - switch on / off database connection stacktrace recording" echo " $0 no-record-stacktrace-db-connections - switch off database connection stacktrace recording" + echo " $0 verify-archives - verify integrity of dataset archives created by ZipArchiver" + ;; version) ${CMD} --version @@ -278,6 +280,10 @@ case "$command" in show-command-queue) ${CMD} --show-command-queue ;; + verify-archives) + shift + java -cp lib/datastore_server.jar:lib/commons-lang.jar:lib/commons-io.jar:lib/postgresql.jar ch.systemsx.cisd.openbis.dss.archiveverifier.cli.Main etc/service.properties $* + ;; log-thread-dump) if [ -f $PIDFILE ]; then PID=`cat $PIDFILE 2> /dev/null` diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/DataSetArchiveVerificationBatchFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/DataSetArchiveVerificationBatchFactory.java index 4b19caffebac321fc6144967fe77f916a90c0dd0..d4f163162fd13209554031f8d8ae49d8f7f93005 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/DataSetArchiveVerificationBatchFactory.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/DataSetArchiveVerificationBatchFactory.java @@ -87,7 +87,7 @@ public class DataSetArchiveVerificationBatchFactory { if (args.length < 2) { - return error("Usage: java -jar ..adsfadf"); + return error("Usage: datastore_server.sh verify-archives [dataset code 1] [dataset code 2] ..."); } String servicePropertiesPath = args[0]; @@ -95,14 +95,14 @@ public class DataSetArchiveVerificationBatchFactory File serviceProperties = new File(servicePropertiesPath); if (serviceProperties.exists() == false) { - return error("No service.properties given"); + return error("File " + serviceProperties.getAbsolutePath() + " does not exist"); } Properties properties = DssPropertyParametersUtil.loadProperties(serviceProperties.getAbsolutePath()); String defaultArchiveDirectoryPath = properties.getProperty(DEFAULT_ARCHIVE_FOLDER); if (defaultArchiveDirectoryPath == null) { - return error("Given service.properties files does not contain mandatory property " + DEFAULT_ARCHIVE_FOLDER); + return error("Given service.properties file does not contain mandatory property " + DEFAULT_ARCHIVE_FOLDER); } IArchiveFileMetaDataRepository pathInfoRepository = null; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/ResultPrinter.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/ResultPrinter.java index 52564d3ab35b2b75756d078042fe59d8c77f0eff..bd1de49e5586d3c5e756bd28a1559bdc6fc1d654 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/ResultPrinter.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/cli/ResultPrinter.java @@ -60,10 +60,14 @@ public class ResultPrinter out.println(" " + error); } failed++; - } else + } else if (result.getErrors().isEmpty()) { out.println("NOT TESTED - " + dataSet + " (file not found)"); notTested++; + } else + { + out.println(result.getErrors().get(0)); + return; } }