diff --git a/src/python/dm/daq_web_service/api/experimentRestApi.py b/src/python/dm/daq_web_service/api/experimentRestApi.py index cf5c93fdad4f4d7c5f9c8ab9ebe6c51a951db2e6..13d095561a1cde80b95ac2b7607726e254453bd2 100755 --- a/src/python/dm/daq_web_service/api/experimentRestApi.py +++ b/src/python/dm/daq_web_service/api/experimentRestApi.py @@ -21,9 +21,10 @@ class ExperimentRestApi(DaqRestApi): raise InvalidRequest('Experiment name must be provided.') if dataDirectory is None or not len(dataDirectory): raise InvalidRequest('Experiment data directory must be provided.') + url += '?dataDirectory=%s' % dataDirectory + url += '&experimentName=%s' % experimentName daqInfo['experimentName'] = experimentName daqInfo['dataDirectory'] = 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 36d258df24720ac681813eb80b686b8a68f2bcaf..26f6f39bebc5025ff28dfaf711e93e7171286f50 100755 --- a/src/python/dm/daq_web_service/service/experimentSessionController.py +++ b/src/python/dm/daq_web_service/service/experimentSessionController.py @@ -20,16 +20,13 @@ class ExperimentSessionController(DmSessionController): @DmSessionController.require(DmSessionController.isAdministrator()) @DmSessionController.execute def startDaq(self, **kwargs): - encodedDaqInfo = kwargs.get('daqInfo') - if not encodedDaqInfo: - raise InvalidRequest('Invalid DAQ info provided.') - daqInfo = json.loads(Encoder.decode(encodedDaqInfo)) - - if not daqInfo.has_key('experimentName'): - raise InvalidRequest('Experiment name is missing.') - if not daqInfo.has_key('dataDirectory'): - raise InvalidRequest('Data directory is missing.') - response = self.experimentSessionControllerImpl.startDaq(daqInfo).getFullJsonRep() + experimentName = kwargs.get('experimentName') + if experimentName is None or not len(experimentName): + raise InvalidRequest('Missing experiment name.') + dataDirectory = kwargs.get('dataDirectory') + if dataDirectory is None or not len(dataDirectory): + raise InvalidRequest('Missing experiment name.') + response = self.experimentSessionControllerImpl.startDaq(experimentName, dataDirectory).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 8301fe221b2fe20376957d9200fa54f803d0c954..99ee8d3679fa102b1069287c14a239316c7ecf36 100755 --- a/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py +++ b/src/python/dm/daq_web_service/service/impl/experimentSessionControllerImpl.py @@ -23,15 +23,16 @@ class ExperimentSessionControllerImpl(DmObjectManager): DmObjectManager.__init__(self) self.dsExperimentApi = DsRestApiFactory.getExperimentRestApi() - def startDaq(self, daqInfo): - experimentName = daqInfo.get('experimentName') + def startDaq(self, experimentName, dataDirectory): + daqInfo={} + daqInfo['experimentName'] = experimentName + daqInfo['dataDirectory'] = dataDirectory experiment = ExperimentTracker.getInstance().get(experimentName) if experiment is not None: oldDaqInfo = experiment.get('daqInfo') if oldDaqInfo.get('daqEndTime') is None: raise InvalidRequest('DAQ for experiment %s is already active in directory %s.' % (experimentName,oldDaqInfo.get('dataDirectory'))) - dataDirectory = daqInfo.get('dataDirectory') experiment = self.dsExperimentApi.getExperimentByName(experimentName) storageDirectory = experiment.get('storageDirectory') if storageDirectory is None: