Skip to content
Snippets Groups Projects
Commit 53de9d3e authored by kaloyane's avatar kaloyane
Browse files

[LMS-2087] integration tested with rsync archiver

SVN: 20335
parent 9124d62e
No related branches found
No related tags found
No related merge requests found
...@@ -44,7 +44,7 @@ public abstract class AbstractDataSetDeletionPostProcessingMaintenanceTask imple ...@@ -44,7 +44,7 @@ public abstract class AbstractDataSetDeletionPostProcessingMaintenanceTask imple
protected static final Logger operationLog = protected static final Logger operationLog =
LogFactory.getLogger(LogCategory.OPERATION, AbstractDataSetDeletionPostProcessingMaintenanceTask.class); LogFactory.getLogger(LogCategory.OPERATION, AbstractDataSetDeletionPostProcessingMaintenanceTask.class);
protected static final String DELAY_AFTER_DELETION = "delay-after-deletion"; protected static final String DELAY_AFTER_DELETION = "delay-after-user-deletion";
protected final IEncapsulatedOpenBISService openBISService; protected final IEncapsulatedOpenBISService openBISService;
......
...@@ -61,6 +61,7 @@ public class DeleteFromArchiveMaintenanceTask extends ...@@ -61,6 +61,7 @@ public class DeleteFromArchiveMaintenanceTask extends
try try
{ {
String statusFileContent = FileUtilities.loadToString(lastSeenEventIdFile); String statusFileContent = FileUtilities.loadToString(lastSeenEventIdFile);
statusFileContent = statusFileContent.trim();
result = Long.parseLong(statusFileContent); result = Long.parseLong(statusFileContent);
} catch (Exception ex) } catch (Exception ex)
{ {
......
...@@ -225,22 +225,47 @@ public final class ExternalDataTable extends AbstractExternalDataBusinessObject ...@@ -225,22 +225,47 @@ public final class ExternalDataTable extends AbstractExternalDataBusinessObject
public void deleteLoadedDataSets(String reason) public void deleteLoadedDataSets(String reason)
{ {
assertDatasetsAreDeletable(externalData); assertDatasetsAreDeletable(externalData);
Map<DataStorePE, List<ExternalDataPE>> map = groupDataSetsByDataStores();
assertDataSetsAreKnown(map); Map<DataStorePE, List<ExternalDataPE>> allToBeDeleted = groupDataSetsByDataStores();
for (Map.Entry<DataStorePE, List<ExternalDataPE>> entry : map.entrySet()) Map<DataStorePE, List<ExternalDataPE>> availableDatasets =
filterAvailableDatasets(allToBeDeleted);
assertDataSetsAreKnown(availableDatasets);
for (Map.Entry<DataStorePE, List<ExternalDataPE>> entry : allToBeDeleted.entrySet())
{ {
DataStorePE dataStore = entry.getKey(); DataStorePE dataStore = entry.getKey();
List<ExternalDataPE> dataSets = entry.getValue(); List<ExternalDataPE> allDataSets = entry.getValue();
// delete locally from DB // delete locally from DB
for (ExternalDataPE dataSet : dataSets) for (ExternalDataPE dataSet : allDataSets)
{ {
deleteDataSetLocally(dataSet, reason); deleteDataSetLocally(dataSet, reason);
} }
// delete remotely from Data Store // delete remotely from Data Store (only executed for available datasets)
deleteDataSets(dataStore, createDatasetDescriptions(dataSets)); List<ExternalDataPE> available = availableDatasets.get(dataStore);
deleteDataSets(dataStore, createDatasetDescriptions(available));
} }
} }
private Map<DataStorePE, List<ExternalDataPE>> filterAvailableDatasets(
Map<DataStorePE, List<ExternalDataPE>> map)
{
Map<DataStorePE, List<ExternalDataPE>> result =
new HashMap<DataStorePE, List<ExternalDataPE>>();
for (Map.Entry<DataStorePE, List<ExternalDataPE>> entry : map.entrySet())
{
ArrayList<ExternalDataPE> available = new ArrayList<ExternalDataPE>();
for (ExternalDataPE data : entry.getValue())
{
if (data.getStatus().isAvailable())
{
available.add(data);
}
}
result.put(entry.getKey(), available);
}
return result;
}
private void deleteDataSetLocally(ExternalDataPE dataSet, String reason) private void deleteDataSetLocally(ExternalDataPE dataSet, String reason)
throws UserFailureException throws UserFailureException
{ {
...@@ -343,7 +368,11 @@ public final class ExternalDataTable extends AbstractExternalDataBusinessObject ...@@ -343,7 +368,11 @@ public final class ExternalDataTable extends AbstractExternalDataBusinessObject
List<String> unknownDataSets = new ArrayList<String>(); List<String> unknownDataSets = new ArrayList<String>();
for (ExternalDataPE dataSet : externalData) for (ExternalDataPE dataSet : externalData)
{ {
if (knownLocations.contains(dataSet.getLocation()) == false) if (dataSet.getStatus() == DataSetArchivingStatus.ARCHIVED)
{
// archived datasets are currently not available in the data store
// but can be deleted
} else if (knownLocations.contains(dataSet.getLocation()) == false)
{ {
unknownDataSets.add(dataSet.getCode()); unknownDataSets.add(dataSet.getCode());
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment