From f0b699aef9170903cac1d03085717ef7c8f51467 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Tue, 23 Jun 2015 20:17:58 +0000 Subject: [PATCH] implement ds service notification that file is ready for processing --- .../dm/daq_web_service/api/daqRestApi.py | 5 ++-- .../daq_web_service/service/daqWebService.py | 2 +- .../impl/dsProcessFileNotificationPlugin.py | 27 +++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100755 src/python/dm/daq_web_service/service/impl/dsProcessFileNotificationPlugin.py diff --git a/src/python/dm/daq_web_service/api/daqRestApi.py b/src/python/dm/daq_web_service/api/daqRestApi.py index 69d943d3..2dd0c6e8 100755 --- a/src/python/dm/daq_web_service/api/daqRestApi.py +++ b/src/python/dm/daq_web_service/api/daqRestApi.py @@ -1,15 +1,16 @@ #!/usr/bin/env python from dm.common.api.dmRestApi import DmRestApi +from dm.common.utility.configurationManager import ConfigurationManager class DaqRestApi(DmRestApi): """ Base DAQ DM REST api class. """ def __init__(self, username=None, password=None, host=None, port=None, protocol=None): if host == None: - host = self.configurationManager.getDaqWebServiceHost() + host = ConfigurationManager.getInstance().getDaqWebServiceHost() if port == None: - port = self.configurationManager.getDaqWebServicePort() + port = ConfigurationManager.getInstance().getDaqWebServicePort() DmRestApi.__init__(self, username, password, host, port, protocol) ####################################################################### diff --git a/src/python/dm/daq_web_service/service/daqWebService.py b/src/python/dm/daq_web_service/service/daqWebService.py index 47be57ff..e4c33731 100755 --- a/src/python/dm/daq_web_service/service/daqWebService.py +++ b/src/python/dm/daq_web_service/service/daqWebService.py @@ -7,8 +7,8 @@ from dm.common.service.dmRestWebServiceBase import DmRestWebServiceBase from dm.common.utility.dmModuleManager import DmModuleManager from dm.common.utility.configurationManager import ConfigurationManager +from dm.common.processing.fileProcessingManager import FileProcessingManager from dm.daq_web_service.service.impl.fileSystemObserver import FileSystemObserver -from dm.daq_web_service.service.impl.fileProcessingManager import FileProcessingManager from daqWebServiceRouteMapper import DaqWebServiceRouteMapper class DaqWebService(DmRestWebServiceBase): diff --git a/src/python/dm/daq_web_service/service/impl/dsProcessFileNotificationPlugin.py b/src/python/dm/daq_web_service/service/impl/dsProcessFileNotificationPlugin.py new file mode 100755 index 00000000..ac3b7ffd --- /dev/null +++ b/src/python/dm/daq_web_service/service/impl/dsProcessFileNotificationPlugin.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +import os +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): + FileProcessor.__init__(self) + self.dsFileApi = DsRestApiFactory.getFileRestApi() + self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__) + + def processFile(self, filePath, daqPath, experiment): + experimentName = experiment.get('name') + storageDirectory = experiment.get('storageDirectory') + fileName = os.path.basename(filePath) + daqFilePath = os.path.join(storageDirectory, fileName) + self.logger.debug('Processing file %s' % filePath) + + self.dsFileApi.processFile(fileName, daqFilePath, experimentName) + +####################################################################### +# Testing. +if __name__ == '__main__': + pass -- GitLab