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 0000000000000000000000000000000000000000..a60cc136e5a4394d71dfabd29ff64a82b9fc487a --- /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