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 07d35ad64a32089309c7cb8f3a8a590053bb17e9..b6655741fc470a6ea7f46603ca0848f326ec22d2 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 ff2dab8ee06dc60114d584179b295eb57f352fe4..d2120532d82c46bffc05c3356ba6f1cad309229a 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; }