From 4be81e47e9a802cff9580757ae9a9e6b0e086233 Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Fri, 18 Sep 2015 19:37:56 +0000 Subject: [PATCH] added optional daqInfo parameter and encoded name and directory in startDaq protocol --- src/python/dm/daq_web_service/api/experimentRestApi.py | 7 ++++--- .../service/experimentSessionController.py | 7 ++++++- .../service/impl/experimentSessionControllerImpl.py | 9 +++++---- .../dm/esafsync/serviceconn/DaqServiceConnection.java | 4 ++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/python/dm/daq_web_service/api/experimentRestApi.py b/src/python/dm/daq_web_service/api/experimentRestApi.py index cbdc2dc6..f6cca3a4 100755 --- a/src/python/dm/daq_web_service/api/experimentRestApi.py +++ b/src/python/dm/daq_web_service/api/experimentRestApi.py @@ -23,9 +23,10 @@ class ExperimentRestApi(DaqRestApi): raise InvalidRequest('Experiment data directory must be provided.') daqInfo['experimentName'] = experimentName daqInfo['dataDirectory'] = dataDirectory - print json.dumps(daqInfo) - url += '?experimentName=%s' % experimentName - url += '&dataDirectory=%s' % dataDirectory + #print json.dumps(daqInfo) + url += '?experimentName=%s' % Encoder.encode(experimentName) + url += '&dataDirectory=%s' % Encoder.encode(dataDirectory) + url += '&daqInfo=%s' % (Encoder.encode(json.dumps(daqInfo))) responseDict = self.sendSessionRequest(url=url, method='POST') return Experiment(responseDict) diff --git a/src/python/dm/daq_web_service/service/experimentSessionController.py b/src/python/dm/daq_web_service/service/experimentSessionController.py index 7139e3d0..5e348959 100755 --- a/src/python/dm/daq_web_service/service/experimentSessionController.py +++ b/src/python/dm/daq_web_service/service/experimentSessionController.py @@ -23,10 +23,15 @@ class ExperimentSessionController(DmSessionController): experimentName = kwargs.get('experimentName') if experimentName is None or not len(experimentName): raise InvalidRequest('Missing experiment name.') + experimentName = Encoder.decode(experimentName) dataDirectory = kwargs.get('dataDirectory') if dataDirectory is None or not len(dataDirectory): raise InvalidRequest('Missing data directory.') - response = self.experimentSessionControllerImpl.startDaq(experimentName, dataDirectory).getFullJsonRep() + dataDirectory = Encoder.decode(dataDirectory) + daqInfo = kwargs.get('daqInfo') + if daqInfo is not None: + daqInfo = Encoder.decode(daqInfo) + response = self.experimentSessionControllerImpl.startDaq(experimentName, dataDirectory, daqInfo).getFullJsonRep() self.logger.debug('Returning: %s' % response) return response diff --git a/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py b/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py index 99ee8d36..1c73e3aa 100755 --- a/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py +++ b/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py @@ -23,10 +23,11 @@ class ExperimentSessionControllerImpl(DmObjectManager): DmObjectManager.__init__(self) self.dsExperimentApi = DsRestApiFactory.getExperimentRestApi() - def startDaq(self, experimentName, dataDirectory): - daqInfo={} - daqInfo['experimentName'] = experimentName - daqInfo['dataDirectory'] = dataDirectory + def startDaq(self, experimentName, dataDirectory, daqInfo): + if daqInfo is None: + daqInfo={} + daqInfo['experimentName'] = experimentName + daqInfo['dataDirectory'] = dataDirectory experiment = ExperimentTracker.getInstance().get(experimentName) if experiment is not None: oldDaqInfo = experiment.get('daqInfo') diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java index bc62267f..2e096277 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java @@ -40,8 +40,8 @@ public class DaqServiceConnection extends ServiceConnection{ } Map<String, String> data = new HashMap<>(); - data.put(Keyword.DAQ_EXPERIMENT_NAME, experimentName); - data.put(Keyword.DAQ_DATA_DIRECTORY, directory); + data.put(Keyword.DAQ_EXPERIMENT_NAME, encode(experimentName)); + data.put(Keyword.DAQ_DATA_DIRECTORY, encode(directory)); if ((new File(dataDir)).exists()) { if ((new File(directory)).exists()) { -- GitLab