Skip to content
Snippets Groups Projects
Commit f706f1e9 authored by sveseli's avatar sveseli
Browse files

add new file processing interfaces

parent 1e02c621
No related branches found
No related tags found
No related merge requests found
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
from dm.common.service.dmRestWebServiceBase import DmRestWebServiceBase from dm.common.service.dmRestWebServiceBase import DmRestWebServiceBase
from dm.common.utility.dmModuleManager import DmModuleManager from dm.common.utility.dmModuleManager import DmModuleManager
from dm.common.utility.configurationManager import ConfigurationManager from dm.common.utility.configurationManager import ConfigurationManager
from dm.ds_web_service.service.impl.storageManager import StorageManager from dm.common.processing.fileProcessingManager import FileProcessingManager
from dm.ds_web_service.service.impl.experimentManager import ExperimentManager
from dsWebServiceRouteMapper import DsWebServiceRouteMapper from dsWebServiceRouteMapper import DsWebServiceRouteMapper
#################################################################### ####################################################################
...@@ -24,7 +25,8 @@ class DsWebService(DmRestWebServiceBase): ...@@ -24,7 +25,8 @@ class DsWebService(DmRestWebServiceBase):
# Add modules that will be started. # Add modules that will be started.
moduleManager = DmModuleManager.getInstance() moduleManager = DmModuleManager.getInstance()
moduleManager.addModule(StorageManager.getInstance()) moduleManager.addModule(ExperimentManager.getInstance())
moduleManager.addModule(FileProcessingManager.getInstance())
self.logger.debug('Initialized dm modules') self.logger.debug('Initialized dm modules')
def getDefaultServerHost(self): def getDefaultServerHost(self):
......
...@@ -13,6 +13,7 @@ from dm.common.utility.configurationManager import ConfigurationManager ...@@ -13,6 +13,7 @@ from dm.common.utility.configurationManager import ConfigurationManager
from dm.common.service.loginRouteDescriptor import LoginRouteDescriptor from dm.common.service.loginRouteDescriptor import LoginRouteDescriptor
from userRouteDescriptor import UserRouteDescriptor from userRouteDescriptor import UserRouteDescriptor
from experimentRouteDescriptor import ExperimentRouteDescriptor from experimentRouteDescriptor import ExperimentRouteDescriptor
from fileRouteDescriptor import FileRouteDescriptor
from authRouteDescriptor import AuthRouteDescriptor from authRouteDescriptor import AuthRouteDescriptor
class DsWebServiceRouteMapper: class DsWebServiceRouteMapper:
...@@ -29,6 +30,7 @@ class DsWebServiceRouteMapper: ...@@ -29,6 +30,7 @@ class DsWebServiceRouteMapper:
routes += AuthRouteDescriptor.getRoutes() routes += AuthRouteDescriptor.getRoutes()
routes += UserRouteDescriptor.getRoutes() routes += UserRouteDescriptor.getRoutes()
routes += ExperimentRouteDescriptor.getRoutes() routes += ExperimentRouteDescriptor.getRoutes()
routes += FileRouteDescriptor.getRoutes()
# Add routes to dispatcher. # Add routes to dispatcher.
d = cherrypy.dispatch.RoutesDispatcher() d = cherrypy.dispatch.RoutesDispatcher()
......
#!/usr/bin/env python #!/usr/bin/env python
# #
# User route descriptor. # Experiment route descriptor.
# #
from dm.common.utility.configurationManager import ConfigurationManager from dm.common.utility.configurationManager import ConfigurationManager
......
#!/usr/bin/env python
#
# File route descriptor.
#
from dm.common.utility.configurationManager import ConfigurationManager
from fileSessionController import FileSessionController
class FileRouteDescriptor:
@classmethod
def getRoutes(cls):
contextRoot = ConfigurationManager.getInstance().getContextRoot()
# Static instances shared between different routes
fileSessionController = FileSessionController()
# Define routes.
routes = [
# Process file
{
'name' : 'processFile',
'path' : '%s/files/processFile' % contextRoot,
'controller' : fileSessionController,
'action' : 'processFile',
'method' : ['POST']
},
]
return routes
#!/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.ds_web_service.service.impl.fileSessionControllerImpl import FileSessionControllerImpl
class FileSessionController(DmSessionController):
def __init__(self):
DmSessionController.__init__(self)
self.fileSessionControllerImpl = FileSessionControllerImpl()
@cherrypy.expose
@DmSessionController.require(DmSessionController.isAdministrator())
@DmSessionController.execute
def processFile(self, **kwargs):
fileName = kwargs.get('fileName')
if not fileName:
raise InvalidRequest('Missing file name.')
fileName = Encoder.decode(fileName)
filePath = kwargs.get('filePath')
if not filePath:
raise InvalidRequest('Missing file path.')
filePath = Encoder.decode(filePath)
experimentName = kwargs.get('experimentName')
if not experimentName:
raise InvalidRequest('Missing experiment name.')
experimentName = Encoder.decode(experimentName)
response = self.fileSessionControllerImpl.processFile(fileName, filePath, experimentName).getFullJsonRep()
self.logger.debug('Returning: %s' % response)
return response
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment