From d67ce0e340e1931f1546761d364be4753bcc406d Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Mon, 17 Oct 2016 16:05:02 +0000 Subject: [PATCH] fix upload status issue --- src/python/dm/common/constants/dmProcessingStatus.py | 1 + src/python/dm/common/objects/daqInfo.py | 2 +- src/python/dm/common/objects/uploadInfo.py | 4 ++-- .../dm/common/processing/plugins/mongoDbFileCatalogPlugin.py | 3 ++- src/python/dm/daq_web_service/service/impl/uploadTracker.py | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/python/dm/common/constants/dmProcessingStatus.py b/src/python/dm/common/constants/dmProcessingStatus.py index 3cc28257..e84703ef 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 468f4ea7..b45d6cc5 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 a119b0ae..5fd41280 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 f6b61069..4c79ea8c 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 89e57447..7634ed34 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] -- GitLab