From c8a0d3d41926fa4b6121e513a6376a5e6044b6bf Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 30 May 2012 14:07:11 +0000 Subject: [PATCH] SP-47, BIS-36: AbstractArchiverProcessingPlugin slightly modified in order to delete incompletely archived data sets even though RsyncArchiver is configured to mark as deleted instead of actually deleting data sets. SVN: 25405 --- .../AbstractArchiverProcessingPlugin.java | 7 ++++++- .../server/plugins/standard/RsyncArchiver.java | 17 +++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java index 07d35ad64a3..b6655741fc4 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java @@ -208,7 +208,7 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore GroupedDatasets groupedDataSets = groupByArchiveDifferencies(datasets, context); DatasetProcessingStatuses statuses = doArchive(groupedDataSets.getDifferentInArchive(), context); - doDeleteFromArchive(getDataSetsFailedToBeArchived(datasets, statuses)); + deletePermanentlyFromArchive(getDataSetsFailedToBeArchived(datasets, statuses)); if (removeFromDataStore) { removeFromDataStore(getArchivedDataSets(datasets, statuses), context); @@ -330,6 +330,11 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore DatasetProcessingStatuses status = doDeleteFromArchive(datasets); return status != null ? status.getProcessingStatus() : null; } + + protected DatasetProcessingStatuses deletePermanentlyFromArchive(List<? extends IDatasetLocation> dataSets) + { + return doDeleteFromArchive(dataSets); + } protected final Status checkUnarchivePrerequisite(List<DatasetDescription> datasets) { diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java index ff2dab8ee06..d2120532d82 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java @@ -259,12 +259,25 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin @Override protected DatasetProcessingStatuses doDeleteFromArchive(List<? extends IDatasetLocation> datasets) + { + return delete(datasets, deleteAction); + } + + @Override + protected DatasetProcessingStatuses deletePermanentlyFromArchive( + List<? extends IDatasetLocation> dataSets) + { + return delete(dataSets, DeleteAction.DELETE); + } + + private DatasetProcessingStatuses delete(List<? extends IDatasetLocation> datasets, + DeleteAction action) { DatasetProcessingStatuses statuses = new DatasetProcessingStatuses(); for (IDatasetLocation dataset : datasets) { - Status status = deleteAction.execute(fileOperationsManager, dataset); - statuses.addResult(dataset.getDataSetCode(), status, deleteAction.getOperation()); + Status status = action.execute(fileOperationsManager, dataset); + statuses.addResult(dataset.getDataSetCode(), status, action.getOperation()); } return statuses; } -- GitLab