#!/usr/bin/env python import os import urllib from dm.common.utility.encoder import Encoder from dm.common.exceptions.dmException import DmException from dm.common.objects.experiment import Experiment from daqRestApi import DaqRestApi class ExperimentRestApi(DaqRestApi): def __init__(self, username=None, password=None, host=None, port=None, protocol=None): DaqRestApi.__init__(self, username, password, host, port, protocol) @DaqRestApi.execute def startDaq(self, name, dataDirectory): url = '%s/experiments/startDaq' % (self.getContextRoot()) if name is None or not len(name): raise InvalidRequest('Experiment name must be provided.') url += '?name=%s' % Encoder.encode(name) if dataDirectory is None or not len(dataDirectory): raise InvalidRequest('Experiment data directory must be provided.') url += '&dataDirectory=%s' % Encoder.encode(dataDirectory) responseDict = self.sendSessionRequest(url=url, method='POST') return Experiment(responseDict) @DaqRestApi.execute def stopDaq(self, name): url = '%s/experiments/stopDaq' % (self.getContextRoot()) if name is None or not len(name): raise InvalidRequest('Experiment name must be provided.') url += '?name=%s' % Encoder.encode(name) responseDict = self.sendSessionRequest(url=url, method='POST') return Experiment(responseDict) @DaqRestApi.execute def startUpload(self, name, dataDirectory): url = '%s/experiments/startUpload' % (self.getContextRoot()) if name is None or not len(name): raise InvalidRequest('Experiment name must be provided.') url += '?name=%s' % Encoder.encode(name) if dataDirectory is None or not len(dataDirectory): raise InvalidRequest('Experiment data directory must be provided.') url += '&dataDirectory=%s' % Encoder.encode(dataDirectory) responseDict = self.sendSessionRequest(url=url, method='POST') return Experiment(responseDict) ####################################################################### # Testing. if __name__ == '__main__': api = ExperimentRestApi('sveseli', 'sveseli', 'zagreb.svdev.net', 33336, 'http') print api.startDaq('experiment1', '/tmp/data/experiment1')