Newer
Older
#!/usr/bin/env python
#
#
from dm.common.utility.configurationManager import ConfigurationManager
from experimentSessionController import ExperimentSessionController
class ExperimentRouteDescriptor:
@classmethod
def getRoutes(cls):
contextRoot = ConfigurationManager.getInstance().getContextRoot()
# Static instances shared between different routes
experimentSessionController = ExperimentSessionController()
# Define routes.
routes = [
# Get experiment types
{
'name' : 'getExperimentTypes',
'path' : '%s/experimentTypes' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getExperimentTypes',
'method' : ['GET']
},
# Get experiment type by id
{
'name' : 'getExperimentTypeById',
'path' : '%s/experimentTypesById/:(id)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getExperimentTypeById',
'method' : ['GET']
},
# Get experiments
{
'name' : 'getExperiments',
'path' : '%s/experiments' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getExperiments',
'method' : ['GET']
},
# Get experiments by station
{
'name' : 'getExperimentsByStation',
'path' : '%s/experimentsByStation/:(stationName)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getExperimentsByStation',
'method' : ['GET']
},
# Get experiment
{
'name' : 'getExperimentById',
'path' : '%s/experimentsById/:(id)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getExperimentById',
'method' : ['GET']
},
# Get experiment
{
'name' : 'getExperimentByName',
'path' : '%s/experimentsByName/:(name)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getExperimentByName',
'method' : ['GET']
},
# Add experiment
{
'name' : 'addExperiment',
'path' : '%s/experiments' % contextRoot,
'controller' : experimentSessionController,
'action' : 'addExperiment',
'method' : ['POST']
},
# Start experiment
{
'name' : 'startExperiment',
'path' : '%s/experiments/start' % contextRoot,
'controller' : experimentSessionController,
'action' : 'startExperiment',
'method' : ['PUT']
},
# Update experiment
{
'name' : 'updateExperiment',
'path' : '%s/experiments/update' % contextRoot,
'controller' : experimentSessionController,
'action' : 'updateExperiment',
'method' : ['PUT']
},
# Stop experiment
{
'name' : 'stopExperiment',
'path' : '%s/experiments/stop' % contextRoot,
'controller' : experimentSessionController,
'action' : 'stopExperiment',
'method' : ['PUT']
},
# Authorize download for a given UNIX username
{
'name' : 'authorizeDownload',
'path' : '%s/downloadAuthorizations/:(username)/:(experimentName)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'authorizeDownload',
'method' : ['POST']
},
# Revoke authorization download for a given UNIX username
{
'name' : 'deauthorizeDownload',
'path' : '%s/downloadAuthorizations/:(username)/:(experimentName)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'deauthorizeDownload',
'method' : ['DELETE']
},