diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/ResetArchivePendingTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/ResetArchivePendingTask.java index 381f4336ca335d3e4479c110ca5163e5734af236..a8a53a3e511d5685511cb5d0601cc7b42ab3deed 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/ResetArchivePendingTask.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/ResetArchivePendingTask.java @@ -5,8 +5,11 @@ import java.util.List; import java.util.Properties; import java.util.Set; +import org.apache.log4j.Logger; import org.springframework.transaction.annotation.Transactional; +import ch.systemsx.cisd.common.logging.LogCategory; +import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.maintenance.IMaintenanceTask; import ch.systemsx.cisd.openbis.dss.generic.server.CommandQueueLister; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; @@ -19,27 +22,42 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO; public class ResetArchivePendingTask implements IMaintenanceTask { + private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, ResetArchivePendingTask.class); + @Override public void setUp(String pluginName, Properties properties) { + operationLog.info("Task " + pluginName + " initialized."); } @Transactional @Override public void execute() { + operationLog.info(ResetArchivePendingTask.class.getSimpleName() + " Started"); // 1. Find datasets with DataSetArchivingStatus.ARCHIVE_PENDING IEncapsulatedOpenBISService service = ServiceProvider.getOpenBISService(); List<SimpleDataSetInformationDTO> inArchivePendings = service.listPhysicalDataSetsByArchivingStatus(DataSetArchivingStatus.ARCHIVE_PENDING); + operationLog.info("Found " + inArchivePendings.size() + " datasets in " + DataSetArchivingStatus.ARCHIVE_PENDING.name() + " status."); // 2. Filter out datasets that are not on the command queue - Set<String> inQueue = CommandQueueLister.getDataSetCodesFromCommandQueue(); + Set<String> inQueue = null; + try + { + inQueue = CommandQueueLister.getDataSetCodesFromCommandQueue(); + } catch (Exception ex) + { + operationLog.error("Command queue can't be read, aborting task.", ex); + return; + } + List<String> toUpdate = new ArrayList<String>(); for (SimpleDataSetInformationDTO inArchivePending : inArchivePendings) { if (!inQueue.contains(inArchivePending.getDataSetCode())) { toUpdate.add(inArchivePending.getDataSetCode()); + operationLog.info(inArchivePending.getDataSetCode() + " not found in command queue, scheduled to update."); } } @@ -47,8 +65,10 @@ public class ResetArchivePendingTask implements IMaintenanceTask DataSetArchivingStatus status = DataSetArchivingStatus.AVAILABLE; boolean presentInArchive = false; + operationLog.info("Going to update " + toUpdate.size() + " datasets."); DataSetCodesWithStatus codesWithStatus = new DataSetCodesWithStatus(toUpdate, status, presentInArchive); QueueingDataSetStatusUpdaterService.update(codesWithStatus); + operationLog.info(ResetArchivePendingTask.class.getSimpleName() + " Finished"); } }