Skip to content
Snippets Groups Projects
experimentRouteDescriptor.py 3.37 KiB
Newer Older
#!/usr/bin/env python

#
# User 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 = [

            # Start experiment daq
            {
                'name' : 'startDaq',
                'path' : '%s/experimentsByName/:(experimentName)/startDaq/:(dataDirectory)' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'startDaq',
                'method' : ['POST']
            },

            # Stop experiment daq
            {
                'name' : 'stopDaq',
                'path' : '%s/experimentsByName/:(experimentName)/stopDaq/:(dataDirectory)' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'stopDaq',
                'method' : ['POST']
            },

            # Get daq info
            {
                'name' : 'getDaqInfo',
                'path' : '%s/experimentDaqs/:(id)' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'getDaqInfo',
                'method' : ['GET']
            },

            # List DAQs
            {
                'name' : 'listDaqs',
                'path' : '%s/experimentDaqsByStatus/:(status)' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'listDaqs',
                'method' : ['GET']
            },

sveseli's avatar
sveseli committed
            # Upload experiment data 
sveseli's avatar
sveseli committed
                'name' : 'upload',
                'path' : '%s/experimentsByName/:(experimentName)/upload/:(dataDirectory)' % contextRoot,
                'controller' : experimentSessionController,
sveseli's avatar
sveseli committed
                'action' : 'upload',
                'method' : ['POST']
            },

            # Get upload info
            {
                'name' : 'getUploadInfo',
                'path' : '%s/experimentUploads/:(id)' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'getUploadInfo',
                'method' : ['GET']
            },
            # List uploads
            {
                'name' : 'listUploads',
                'path' : '%s/experimentUploadsByStatus/:(status)' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'listUploads',
                'method' : ['GET']
            },

            # Stop upload
            {
                'name' : 'stopUpload',
                'controller' : experimentSessionController,
                'path' : '%s/experimentUploads/stopUpload/:(id)' % contextRoot,
                'action' : 'stopUpload',
                'method' : ['POST']
            },

            # Get processing plugins
            {
                'name' : 'getProcessingPlugins',
                'path' : '%s/processingPlugins' % contextRoot,
                'controller' : experimentSessionController,
                'action' : 'getProcessingPlugins',
                'method' : ['GET']
            },