#!/usr/bin/env python import cherrypy from dm.common.service.dmSessionController import DmSessionController from dm.common.exceptions.invalidRequest import InvalidRequest from dm.common.utility.encoder import Encoder from dm.daq_web_service.service.impl.experimentSessionControllerImpl import ExperimentSessionControllerImpl class ExperimentSessionController(DmSessionController): def __init__(self): DmSessionController.__init__(self) self.experimentSessionControllerImpl = ExperimentSessionControllerImpl() @cherrypy.expose @DmSessionController.require(DmSessionController.isLoggedIn()) @DmSessionController.execute def startDaq(self, **kwargs): name = kwargs.get('name') if name is None or not len(name): raise InvalidRequest('Missing experiment name.') name = Encoder.decode(name) dataDirectory = kwargs.get('dataDirectory') if dataDirectory is None or not len(dataDirectory): raise InvalidRequest('Missing experiment data directory.') dataDirectory = Encoder.decode(dataDirectory) response = self.experimentSessionControllerImpl.startDaq(name, dataDirectory).getFullJsonRep() self.logger.debug('Returning: %s' % response) return response @cherrypy.expose @DmSessionController.require(DmSessionController.isLoggedIn()) @DmSessionController.execute def stopDaq(self, **kwargs): name = kwargs.get('name') if name is None or not len(name): raise InvalidRequest('Missing experiment name.') name = Encoder.decode(name) response = self.experimentSessionControllerImpl.stopDaq(name).getFullJsonRep() self.logger.debug('Returning: %s' % response) return response