diff --git a/src/python/dm/common/constants/dmProcessingStatus.py b/src/python/dm/common/constants/dmProcessingStatus.py index 3cc2825741ee4ac3ef890bda6b6656cf30867c81..e84703efd9f6d07676de3c4f1d3e95b38e13dc0b 100755 --- a/src/python/dm/common/constants/dmProcessingStatus.py +++ b/src/python/dm/common/constants/dmProcessingStatus.py @@ -34,5 +34,6 @@ DM_INACTIVE_PROCESSING_STATUS_LIST = [ DM_ACTIVE_PROCESSING_STATUS_LIST = [ DM_PROCESSING_STATUS_PENDING, DM_PROCESSING_STATUS_RUNNING, + DM_PROCESSING_STATUS_FINALIZING, DM_PROCESSING_STATUS_ABORTING ] diff --git a/src/python/dm/common/objects/daqInfo.py b/src/python/dm/common/objects/daqInfo.py index 468f4ea7eac00bb402a18407a3cdc3f423274d45..b45d6cc51ba20787d5975655fcbc5cf0759b1258 100755 --- a/src/python/dm/common/objects/daqInfo.py +++ b/src/python/dm/common/objects/daqInfo.py @@ -78,7 +78,7 @@ class DaqInfo(DmObject): if self.get('endTime'): daqStatus = dmProcessingStatus.DM_PROCESSING_STATUS_FINALIZING - if nCompletedFiles == nFiles: + if nCompletedFiles >= nFiles: daqStatus = dmProcessingStatus.DM_PROCESSING_STATUS_DONE if nProcessingErrors: daqStatus = dmProcessingStatus.DM_PROCESSING_STATUS_FAILED diff --git a/src/python/dm/common/objects/uploadInfo.py b/src/python/dm/common/objects/uploadInfo.py index a119b0ae1521ef50c182b4fb4f1cfd6e63c5a9b1..5fd41280cfef38444e6b83933451e5f8129c5c25 100755 --- a/src/python/dm/common/objects/uploadInfo.py +++ b/src/python/dm/common/objects/uploadInfo.py @@ -73,7 +73,7 @@ class UploadInfo(DmObject): startTime = self.get('startTime', now) runTime = now - startTime endTime = None - if nCompletedFiles == nFiles: + if nCompletedFiles == nFiles and uploadStatus != dmProcessingStatus.DM_PROCESSING_STATUS_PENDING: uploadStatus = 'done' if nProcessingErrors: uploadStatus = 'failed' @@ -84,7 +84,7 @@ class UploadInfo(DmObject): endTime = lastFileProcessingErrorTime if nCancelledFiles > 0 and nCancelledFiles+nCompletedFiles == nFiles: - uploadStatus = 'aborted' + uploadStatus = dmProcessingStatus.DM_PROCESSING_STATUS_ABORTED endTime = self.get('lastFileProcessingCancelledTime', now) if endTime: diff --git a/src/python/dm/common/processing/plugins/mongoDbFileCatalogPlugin.py b/src/python/dm/common/processing/plugins/mongoDbFileCatalogPlugin.py index f6b6106973d6dbd0820c3e6c6306993f24b69fdf..4c79ea8cbb919916d607dc8e71d5acd2b9b11d5b 100755 --- a/src/python/dm/common/processing/plugins/mongoDbFileCatalogPlugin.py +++ b/src/python/dm/common/processing/plugins/mongoDbFileCatalogPlugin.py @@ -2,6 +2,7 @@ import os import time +from dm.common.constants import dmProcessingStatus from dm.common.utility.loggingManager import LoggingManager from dm.common.objects.observedFile import ObservedFile from dm.common.utility.timeUtility import TimeUtility @@ -123,7 +124,7 @@ class MongoDbFileCatalogPlugin(FileProcessor): fileInfo['daqInfo'] = daqInfo fileInfo['uploadId'] = uploadId - if uploadInfo.get('status') != 'aborting': + if uploadInfo.get('status') != dmProcessingStatus.DM_PROCESSING_STATUS_ABORTING: self.processFile(fileInfo) nProcessedFiles += 1 else: diff --git a/src/python/dm/daq_web_service/service/impl/uploadTracker.py b/src/python/dm/daq_web_service/service/impl/uploadTracker.py index 89e57447f3d529bcc0fc3f0699cf3f04d63d74b9..7634ed34e6186f7223aad1426a19b90e150270be 100755 --- a/src/python/dm/daq_web_service/service/impl/uploadTracker.py +++ b/src/python/dm/daq_web_service/service/impl/uploadTracker.py @@ -25,7 +25,7 @@ class UploadTracker(ObjectTracker): uploadInfo = self.get(uploadId) if uploadInfo is not None: uploadInfo.updateStatus() - if uploadInfo.get('status') == dmProcessingStatus.DM_PROCESSING_STATUS_RUNNING: + if uploadInfo.get('status') in dmProcessingStatus.DM_ACTIVE_PROCESSING_STATUS_LIST: raise ObjectAlreadyExists('Upload id %s is already active for experiment %s in data directory %s.' % (uploadId, experimentName, dataDir)) del self.activeUploadDict[activeUploadKey]