diff --git a/src/python/dm/daq_web_service/api/experimentRestApi.py b/src/python/dm/daq_web_service/api/experimentRestApi.py index 75e2720a75cb8b7205449c90a32f73f8eb41c790..24ea8101267e1c6257f69142b4dd9dcac3ad4ef5 100755 --- a/src/python/dm/daq_web_service/api/experimentRestApi.py +++ b/src/python/dm/daq_web_service/api/experimentRestApi.py @@ -8,6 +8,7 @@ from dm.common.utility.encoder import Encoder from dm.common.exceptions.dmException import DmException from dm.common.objects.experiment import Experiment from dm.common.objects.uploadInfo import UploadInfo +from dm.common.objects.daqInfo import DaqInfo from daqRestApi import DaqRestApi class ExperimentRestApi(DaqRestApi): @@ -17,46 +18,47 @@ class ExperimentRestApi(DaqRestApi): @DaqRestApi.execute def startDaq(self, experimentName, dataDirectory, daqInfo={}): - url = '%s/experiments/startDaq' % (self.getContextRoot()) - if experimentName is None or not len(experimentName): + if not experimentName: raise InvalidRequest('Experiment name must be provided.') - if dataDirectory is None or not len(dataDirectory): + if not dataDirectory: raise InvalidRequest('Experiment data directory must be provided.') - daqInfo['experimentName'] = experimentName - daqInfo['dataDirectory'] = dataDirectory - url += '?experimentName=%s' % Encoder.encode(experimentName) - url += '&dataDirectory=%s' % Encoder.encode(dataDirectory) - url += '&daqInfo=%s' % (Encoder.encode(json.dumps(daqInfo))) + url = '%s/experimentsByName/%s/startDaq/%s' % (self.getContextRoot(), Encoder.encode(experimentName), Encoder.encode(dataDirectory)) + url += '?daqInfo=%s' % (Encoder.encode(json.dumps(daqInfo))) responseDict = self.sendSessionRequest(url=url, method='POST') - return Experiment(responseDict) + return DaqInfo(responseDict) @DaqRestApi.execute - def stopDaq(self, experimentName): - url = '%s/experiments/stopDaq' % (self.getContextRoot()) - if experimentName is None or not len(experimentName): + def stopDaq(self, experimentName, dataDirectory): + if not experimentName: raise InvalidRequest('Experiment name must be provided.') - url += '?experimentName=%s' % Encoder.encode(experimentName) + if not dataDirectory: + raise InvalidRequest('Experiment data directory must be provided.') + url = '%s/experimentsByName/%s/stopDaq/%s' % (self.getContextRoot(), Encoder.encode(experimentName), Encoder.encode(dataDirectory)) responseDict = self.sendSessionRequest(url=url, method='POST') - return Experiment(responseDict) + return DaqInfo(responseDict) + + @DaqRestApi.execute + def getDaqInfo(self, id): + if not id: + raise InvalidRequest('Daq id must be provided.') + url = '%s/experimentDaqs/%s' % (self.getContextRoot(),id) + responseDict = self.sendSessionRequest(url=url, method='GET') + return DaqInfo(responseDict) @DaqRestApi.execute def upload(self, experimentName, dataDirectory, daqInfo={}): - url = '%s/experiments/upload' % (self.getContextRoot()) - if experimentName is None or not len(experimentName): + if not experimentName: raise InvalidRequest('Experiment name must be provided.') - if dataDirectory is None or not len(dataDirectory): + if not dataDirectory: raise InvalidRequest('Experiment data directory must be provided.') - daqInfo['experimentName'] = experimentName - daqInfo['dataDirectory'] = dataDirectory - url += '?experimentName=%s' % Encoder.encode(experimentName) - url += '&dataDirectory=%s' % Encoder.encode(dataDirectory) - url += '&daqInfo=%s' % (Encoder.encode(json.dumps(daqInfo))) + url = '%s/experimentsByName/%s/upload/%s' % (self.getContextRoot(), Encoder.encode(experimentName), Encoder.encode(dataDirectory)) + url += '?daqInfo=%s' % (Encoder.encode(json.dumps(daqInfo))) responseDict = self.sendSessionRequest(url=url, method='POST') return UploadInfo(responseDict) @DaqRestApi.execute def getUploadInfo(self, id): - url = '%s/experiments/upload/%s' % (self.getContextRoot(),id) + url = '%s/experimentUploads/%s' % (self.getContextRoot(),id) if not id: raise InvalidRequest('Upload id must be provided.') responseDict = self.sendSessionRequest(url=url, method='GET')