Forked from
DM / dm-docs
261 commits behind, 742 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dsProcessFileNotificationPlugin.py 2.06 KiB
#!/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.getFileRestApi()
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