#!/usr/bin/env python # # Route mapper for DM DS web service. # import sys import os import cherrypy from dm.common.utility.loggingManager import LoggingManager from dm.common.utility.configurationManager import ConfigurationManager from dm.common.service.loginRouteDescriptor import LoginRouteDescriptor from userRouteDescriptor import UserRouteDescriptor from experimentRouteDescriptor import ExperimentRouteDescriptor from fileRouteDescriptor import FileRouteDescriptor from authRouteDescriptor import AuthRouteDescriptor class DsWebServiceRouteMapper: @classmethod def setupRoutes(cls): """ Setup RESTFul routes. """ logger = LoggingManager.getInstance().getLogger(cls.__name__) contextRoot = ConfigurationManager.getInstance().getContextRoot() logger.debug('Using context root: %s' % contextRoot) # Get routes. routes = LoginRouteDescriptor.getRoutes() routes += AuthRouteDescriptor.getRoutes() routes += UserRouteDescriptor.getRoutes() routes += ExperimentRouteDescriptor.getRoutes() routes += FileRouteDescriptor.getRoutes() # Add routes to dispatcher. d = cherrypy.dispatch.RoutesDispatcher() for route in routes: logger.debug('Connecting route: %s' % route) d.connect(route['name'], route['path'], action=route['action'], controller=route['controller'], conditions=dict(method=route['method'])) return d