Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 247 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
experimentRouteDescriptor.py 2.66 KiB
#!/usr/bin/env python

#
# Experiment route descriptor.
#

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 experiments
            {
                'name' : 'getExperiments',
                'path' : '%s/experiments' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'getExperiments',
                'method' : ['GET']
            },

            # Get experiment
            {
                'name' : 'getExperimentById',
                'path' : '%s/experiments/:(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']
            },

            # Stop experiment
            {
                'name' : 'stopExperiment',
                'path' : '%s/experiments/stop' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'stopExperiment',
                'method' : ['PUT']
            },

        ]
       
        return routes