Skip to content
Snippets Groups Projects
Commit 1d560e7a authored by kaloyane's avatar kaloyane
Browse files

[LMS-2104]: do not try to archive virtual data sets in post-registration

SVN: 21358
parent 115e34ed
No related branches found
No related tags found
No related merge requests found
...@@ -71,7 +71,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -71,7 +71,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
{ {
return new Executor(dataSetCode); return new Executor(dataSetCode);
} }
private final class Executor implements IPostRegistrationTaskExecutor private final class Executor implements IPostRegistrationTaskExecutor
{ {
private final String dataSetCode; private final String dataSetCode;
...@@ -98,13 +98,19 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -98,13 +98,19 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
return; return;
} }
DatasetDescription dataSet = tryGetDatasetDescription(dataSetCode, service); ExternalData dataSet = tryGetExternalData(dataSetCode, service);
if (dataSet == null) if (dataSet == null)
{ {
operationLog.warn("Data set with code " + dataSetCode operationLog.warn("Data set '" + dataSetCode
+ " is no longer available in openBIS. Archiving post-registration " + "' is no longer available in openBIS."
+ "task will be skipped..."); + "Archiving post-registration task will be skipped...");
return;
} else if (dataSet.isContainer())
{
operationLog.warn("Data set '" + dataSetCode + "' is a container data set."
+ " Archiving post-registration task will be skipped...");
return; return;
} }
boolean statusUpdated = boolean statusUpdated =
...@@ -112,7 +118,10 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -112,7 +118,10 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
false); false);
if (statusUpdated) if (statusUpdated)
{ {
List<DatasetDescription> dataSetAsList = Collections.singletonList(dataSet); DatasetDescription dataSetDescription =
DataSetTranslator.translateToDescription(dataSet);
List<DatasetDescription> dataSetAsList =
Collections.singletonList(dataSetDescription);
ProcessingStatus processingStatus = ProcessingStatus processingStatus =
archiver.archive(dataSetAsList, createArchiverContext(), false); archiver.archive(dataSetAsList, createArchiverContext(), false);
if (false == processingStatus.getErrorStatuses().isEmpty()) if (false == processingStatus.getErrorStatuses().isEmpty())
...@@ -129,7 +138,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -129,7 +138,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
String failedMessage = String failedMessage =
String.format("Eager archiving of dataset '%s' has failed. \n", dataSetCode); String.format("Eager archiving of dataset '%s' has failed. \n", dataSetCode);
message.append(failedMessage); message.append(failedMessage);
for (Status status : processingStatus.getErrorStatuses()) for (Status status : processingStatus.getErrorStatuses())
{ {
if (status.tryGetErrorMessage() != null) if (status.tryGetErrorMessage() != null)
{ {
...@@ -141,7 +150,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -141,7 +150,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
String.format("If you wish to archive the dataset in the future, " String.format("If you wish to archive the dataset in the future, "
+ "you can configure an '%s'.", AutoArchiverTask.class.getSimpleName()); + "you can configure an '%s'.", AutoArchiverTask.class.getSimpleName());
message.append(footer); message.append(footer);
notificationLog.error(message); notificationLog.error(message);
} }
...@@ -151,7 +160,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -151,7 +160,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
} }
} }
private static DatasetDescription tryGetDatasetDescription(String dataSetCode, private static ExternalData tryGetExternalData(String dataSetCode,
IEncapsulatedOpenBISService service) IEncapsulatedOpenBISService service)
{ {
List<String> codeAsList = Collections.singletonList(dataSetCode); List<String> codeAsList = Collections.singletonList(dataSetCode);
...@@ -162,13 +171,20 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -162,13 +171,20 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
} }
ExternalData data = dataList.get(0); ExternalData data = dataList.get(0);
return DataSetTranslator.translateToDescription(data); return data;
}
private static DatasetDescription tryGetDatasetWithLocation(String dataSetCode,
IEncapsulatedOpenBISService service)
{
ExternalData data = tryGetExternalData(dataSetCode, service);
return (data != null) ? DataSetTranslator.translateToDescription(data) : null;
} }
private static ArchiverTaskContext createArchiverContext() private static ArchiverTaskContext createArchiverContext()
{ {
return new ArchiverTaskContext(ServiceProvider.getDataStoreService() return new ArchiverTaskContext(ServiceProvider.getDataStoreService().getDataSetDirectoryProvider());
.getDataSetDirectoryProvider());
} }
private static class ArchivingCleanupTask implements ICleanupTask private static class ArchivingCleanupTask implements ICleanupTask
...@@ -185,18 +201,16 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask ...@@ -185,18 +201,16 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
public void cleanup(ISimpleLogger logger) public void cleanup(ISimpleLogger logger)
{ {
IEncapsulatedOpenBISService openBISService = ServiceProvider.getOpenBISService(); IEncapsulatedOpenBISService openBISService = ServiceProvider.getOpenBISService();
boolean statusUpdated = boolean statusUpdated = openBISService
openBISService.compareAndSetDataSetStatus(dataSetCode, BACKUP_PENDING, .compareAndSetDataSetStatus(dataSetCode, BACKUP_PENDING, AVAILABLE, false);
AVAILABLE, false);
if (statusUpdated == false) {
if (statusUpdated == false) // invalid data set status, do not continue
{
// invalid data set status, do not continue
return; return;
} }
IArchiverPlugin archiver = ServiceProvider.getDataStoreService().getArchiverPlugin(); IArchiverPlugin archiver = ServiceProvider.getDataStoreService().getArchiverPlugin();
DatasetDescription dataSet = tryGetDatasetDescription(dataSetCode, openBISService); DatasetDescription dataSet = tryGetDatasetWithLocation(dataSetCode, openBISService);
if (archiver != null && dataSet != null) if (archiver != null && dataSet != null)
{ {
DatasetLocation dataset = new DatasetLocation(); DatasetLocation dataset = new DatasetLocation();
......
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