Skip to content
Snippets Groups Projects
daqProcessingCompleteNotificationPlugin.py 1.46 KiB
Newer Older
#!/usr/bin/env python

import os
from dm.common.utility.loggingManager import LoggingManager
from dm.common.processing.plugins.fileProcessor import FileProcessor
from uploadTracker import UploadTracker
from daqTracker import DaqTracker

class DaqProcessingCompleteNotificationPlugin(FileProcessor):

    def __init__(self):
        FileProcessor.__init__(self)
        self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__)

    def processFile(self, fileInfo):
        filePath = fileInfo.get('filePath')
        uploadId = fileInfo.get('uploadId')
        daqId = fileInfo.get('daqInfo', {}).get('id')
        trackedInfo = None
        if uploadId != None:
            self.logger.debug('Upload id for file %s: %s' %(filePath, uploadId))
            trackedInfo = UploadTracker.getInstance().get(uploadId)
        if daqId != None:
            self.logger.debug('Daq id for file %s: %s' %(filePath, daqId))
            trackedInfo = DaqTracker.getInstance().get(daqId)
        if trackedInfo != None:
            fileDict = trackedInfo.get('fileDict', {})
            trackedFileInfo = fileDict.get(filePath)
            if trackedFileInfo:
                trackedFileInfo['processed'] = True
                self.logger.error('%s object does not have file path %s' %(trackedInfo, filePath))
        trackedInfo.updateStatus()


#######################################################################
# Testing.
if __name__ == '__main__':
    pass