From aeedc7119003d2b0ef549eb269f97422b2d63b42 Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Fri, 30 Aug 2013 10:21:50 +0000 Subject: [PATCH] BIS-506 / SP-841: Display warning message if pathinfo db is not configured SVN: 29694 --- .../dss/archiveverifier/batch/BatchResult.java | 3 ++- .../batch/DataSetArchiveVerificationResult.java | 4 +++- .../dss/archiveverifier/batch/ResultType.java | 2 +- .../SerialDataSetArchiveVerificationBatch.java | 17 ++++++++++++++++- .../batch/VerificationErrorType.java | 2 +- .../DataSetArchiveVerificationBatchFactory.java | 11 ++++++++++- .../dss/archiveverifier/cli/ResultPrinter.java | 11 ++++++++++- 7 files changed, 43 insertions(+), 7 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/BatchResult.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/BatchResult.java index ed52033b86c..d2d19bf12c0 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/BatchResult.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/BatchResult.java @@ -36,7 +36,8 @@ public class BatchResult { this.results = new TreeMap<String, DataSetArchiveVerificationResult>(); - DataSetArchiveVerificationResult missingResult = new DataSetArchiveVerificationResult(VerificationErrorType.ERROR, "dataset not processed"); + DataSetArchiveVerificationResult missingResult = + new DataSetArchiveVerificationResult(VerificationErrorType.ERROR, "Internal error, dataset archive not verified"); for (String dataSet : dataSets) { diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/DataSetArchiveVerificationResult.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/DataSetArchiveVerificationResult.java index 9245f89441c..1800c38b54a 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/DataSetArchiveVerificationResult.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/DataSetArchiveVerificationResult.java @@ -47,7 +47,7 @@ public class DataSetArchiveVerificationResult public DataSetArchiveVerificationResult(Exception e) { this.file = null; - this.errors = Collections.singletonList(new VerificationError(VerificationErrorType.ERROR, e.getClass().getName()+":"+e.getMessage())); + this.errors = Collections.singletonList(new VerificationError(VerificationErrorType.ERROR, e.getClass().getName() + ":" + e.getMessage())); } public ResultType getType() @@ -68,6 +68,8 @@ public class DataSetArchiveVerificationResult { case WARNING: return ResultType.WARNING; + case GENERAL_WARNING: + return ResultType.GENERAL_WARNING; case ERROR: return ResultType.ERROR; case FATAL: diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/ResultType.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/ResultType.java index b3750a9f598..0c1285855dd 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/ResultType.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/ResultType.java @@ -23,7 +23,7 @@ package ch.systemsx.cisd.openbis.dss.archiveverifier.batch; */ public enum ResultType { - OK(0), WARNING(1), ERROR(2), FATAL(2); + OK(0), WARNING(1), GENERAL_WARNING(1), ERROR(2), FATAL(2); private final int exitCode; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/SerialDataSetArchiveVerificationBatch.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/SerialDataSetArchiveVerificationBatch.java index 4b38b9f0366..1f872cb6a55 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/SerialDataSetArchiveVerificationBatch.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/SerialDataSetArchiveVerificationBatch.java @@ -16,6 +16,9 @@ package ch.systemsx.cisd.openbis.dss.archiveverifier.batch; +import java.util.Collection; +import java.util.HashSet; +import java.util.UUID; /** * Runs archive verification for a list of datasets. @@ -29,16 +32,28 @@ public class SerialDataSetArchiveVerificationBatch implements IDataSetArchiveVer private final String[] dataSets; + private BatchResult batchResult; + public SerialDataSetArchiveVerificationBatch(IDataSetArchiveVerifier verifier, String... dataSets) + { + this(verifier, new HashSet<DataSetArchiveVerificationResult>(), dataSets); + } + + public SerialDataSetArchiveVerificationBatch(IDataSetArchiveVerifier verifier, Collection<DataSetArchiveVerificationResult> initialResults, + String... dataSets) { this.verifier = verifier; this.dataSets = dataSets; + batchResult = new BatchResult(dataSets); + for (DataSetArchiveVerificationResult initialResult : initialResults) + { + batchResult.add(UUID.randomUUID().toString(), initialResult); + } } @Override public BatchResult run() { - BatchResult batchResult = new BatchResult(dataSets); for (String dataSet : dataSets) { diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/VerificationErrorType.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/VerificationErrorType.java index 764fb4ee1a7..5136d2a20e2 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/VerificationErrorType.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/archiveverifier/batch/VerificationErrorType.java @@ -24,5 +24,5 @@ package ch.systemsx.cisd.openbis.dss.archiveverifier.batch; public enum VerificationErrorType { // don't change the order as the code depends on it - WARNING, ERROR, FATAL; + WARNING, GENERAL_WARNING, ERROR, FATAL; } 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 3d71ae15222..3d0a1afce17 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 @@ -26,6 +26,7 @@ import java.sql.DriverManager; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Properties; @@ -83,7 +84,15 @@ public class DataSetArchiveVerificationBatchFactory List<IArchiveFileVerifier> verifiers = getVerifiers(properties, pathInfoRepository); DataSetArchiveVerifier verifier = new DataSetArchiveVerifier(archiveFileRepository, new CompositeVerifier(verifiers)); - return new SerialDataSetArchiveVerificationBatch(verifier, Arrays.copyOfRange(args, 1, args.length)); + if (pathInfoRepository == null) + { + Collection<DataSetArchiveVerificationResult> init = new ArrayList<DataSetArchiveVerificationResult>(); + init.add(new DataSetArchiveVerificationResult(VerificationErrorType.GENERAL_WARNING, "pathinfo db not configured")); + return new SerialDataSetArchiveVerificationBatch(verifier, init, Arrays.copyOfRange(args, 1, args.length)); + } else + { + return new SerialDataSetArchiveVerificationBatch(verifier, Arrays.copyOfRange(args, 1, args.length)); + } } catch (ConfigurationException e) { 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 9c5131f0dcd..332a5daecb2 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 @@ -74,6 +74,9 @@ public class ResultPrinter if (VerificationErrorType.FATAL.equals(type)) { out.println(result.getErrors().get(0).getMessage()); + } else if (VerificationErrorType.GENERAL_WARNING.equals(type)) + { + out.println("WARNING: " + error.getMessage()); } else { out.println(type + " in " + dataSet + " (" + result.getFileName() + "): " + error.getMessage()); @@ -98,6 +101,7 @@ public class ResultPrinter int warning = counts.get(ResultType.WARNING); int error = counts.get(ResultType.ERROR); int fatal = counts.get(ResultType.FATAL); + int generalWarnings = counts.get(ResultType.GENERAL_WARNING); int total = ok + warning + error; @@ -112,7 +116,7 @@ public class ResultPrinter if (warning + error == 0) { - out.println("No errors found"); + out.println("No errors found."); } else { if (error > 0) @@ -124,5 +128,10 @@ public class ResultPrinter out.println(warning + " archive file(s) caused warnings"); } } + + if (generalWarnings > 0) + { + out.println(generalWarnings + " general warning(s)."); + } } } -- GitLab