#!/usr/bin/env python import os import copy from dm.common.utility.loggingManager import LoggingManager from dm.common.processing.plugins.fileProcessor import FileProcessor from dm.ds_web_service.api.dsRestApiFactory import DsRestApiFactory class DsProcessFileNotificationPlugin(FileProcessor): def __init__(self, dependsOn=[]): FileProcessor.__init__(self, dependsOn=dependsOn) self.dsFileApi = DsRestApiFactory.getFileDsApi() self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__) def processFile(self, fileInfo): experimentFilePath = fileInfo.get('experimentFilePath') experimentName = fileInfo.get('experimentName') daqInfo = fileInfo.get('daqInfo', {}) md5Sum = fileInfo.get('md5Sum') self.logger.debug('Processing file %s for experiment %s' % (experimentFilePath, experimentName)) # Prepare dictionary for processing. Only send needed data. fileInfo2 = {} fileInfo2['experimentFilePath'] = experimentFilePath fileInfo2['experimentName'] = experimentName if md5Sum: fileInfo2['md5Sum'] = md5Sum fileInfo2['daqInfo'] = daqInfo self.logger.debug('File info sent to DS service: %s' % (str(fileInfo2))) self.dsFileApi.processFile(experimentFilePath, experimentName, fileInfo2) def processDirectory(self, directoryInfo): uploadInfo = directoryInfo.get('uploadInfo') experimentName = uploadInfo.get('experimentName') experimentDirectoryPath = '' daqInfo = directoryInfo.get('daqInfo') directoryInfo2 = {} directoryInfo['experimentDirectoryPath'] = experimentDirectoryPath directoryInfo2['experimentName'] = experimentName directoryInfo2['daqInfo'] = daqInfo self.logger.debug('Directory info sent to DS service: %s' % (str(directoryInfo2))) self.dsFileApi.processDirectory(experimentDirectoryPath, experimentName, directoryInfo2) ####################################################################### # Testing. if __name__ == '__main__': pass