From f74fd9e54328855bfa208f03d2806b57837ca4f8 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Tue, 7 Jul 2015 20:25:57 +0000 Subject: [PATCH] add sdds processing plugin --- .../impl/sddsParameterProcessingPlugin.py | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 src/python/dm/ds_web_service/service/impl/sddsParameterProcessingPlugin.py diff --git a/src/python/dm/ds_web_service/service/impl/sddsParameterProcessingPlugin.py b/src/python/dm/ds_web_service/service/impl/sddsParameterProcessingPlugin.py new file mode 100755 index 00000000..a60cc136 --- /dev/null +++ b/src/python/dm/ds_web_service/service/impl/sddsParameterProcessingPlugin.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +import os +import time +from dm.common.utility.loggingManager import LoggingManager +from dm.common.utility.timeUtility import TimeUtility +from dm.common.processing.plugins.fileProcessor import FileProcessor +from dm.common.mongodb.api.fileMongoDbApi import FileMongoDbApi + +class SddsParameterProcessingPlugin(FileProcessor): + + def __init__(self): + FileProcessor.__init__(self) + self.fileMongoDbApi = FileMongoDbApi() + self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__) + + + def processFile(self, fileInfo): + experimentFilePath = fileInfo.get('experimentFilePath') + experiment = fileInfo.get('experiment') + experimentName = experiment.get('name') + self.logger.debug('Processing file %s for experiment %s' % (fileInfo, experimentName)) + + experimentStorageDirectory = experiment.get('storageDirectory') + storageFilePath = os.path.join(experimentStorageDirectory, experimentFilePath) + + # Load file + from sdds import SDDS + s = SDDS(0) + s.load(storageFilePath) + + # Prepare catalogging entry + fileInfo2 = {} + fileInfo2['fileName'] = os.path.basename(experimentFilePath) + fileInfo2['experimentName'] = experimentName + for i in range(0,len(s.parameterName)): + parameterName = s.parameterName[i] + parameterData = s.parameterData[i][0] + fileInfo2[parameterName] = parameterData + self.fileMongoDbApi.updateOrAddExperimentFile(fileInfo2) + + +####################################################################### +# Testing. +if __name__ == '__main__': + pass -- GitLab