#!/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 else: self.logger.error('%s object does not have file path %s' %(trackedInfo, filePath)) trackedInfo.updateStatus() ####################################################################### # Testing. if __name__ == '__main__': pass