diff --git a/src/python/dm/ds_web_service/api/dsRestApi.py b/src/python/dm/ds_web_service/api/dsRestApi.py index 0465538aafcbd799e6179512e392763485eff221..d41b64d9f982839b82113c5058df3e01b1187fa7 100755 --- a/src/python/dm/ds_web_service/api/dsRestApi.py +++ b/src/python/dm/ds_web_service/api/dsRestApi.py @@ -1,15 +1,16 @@ #!/usr/bin/env python from dm.common.api.dmRestApi import DmRestApi +from dm.common.utility.configurationManager import ConfigurationManager class DsRestApi(DmRestApi): """ Base DS DM REST api class. """ def __init__(self, username=None, password=None, host=None, port=None, protocol=None): if host == None: - host = self.configurationManager.getDsWebServiceHost() + host = ConfigurationManager.getInstance().getDsWebServiceHost() if port == None: - port = self.configurationManager.getDsWebServicePort() + port = ConfigurationManager.getInstance().getDsWebServicePort() DmRestApi.__init__(self, username, password, host, port, protocol) ####################################################################### diff --git a/src/python/dm/ds_web_service/api/dsRestApiFactory.py b/src/python/dm/ds_web_service/api/dsRestApiFactory.py index c5e309b6fcbacc3b8b9c4189c61aea04a98076fb..6b9e3dadbcc42bbf51f64c42c7310d45c3f265f1 100755 --- a/src/python/dm/ds_web_service/api/dsRestApiFactory.py +++ b/src/python/dm/ds_web_service/api/dsRestApiFactory.py @@ -56,6 +56,12 @@ class DsRestApiFactory: api = ExperimentRestApi(username, password, host, port, protocol) return api + @classmethod + def getFileRestApi(cls): + from fileRestApi import FileRestApi + (username, password, host, port, protocol) = cls.__getConfiguration() + api = FileRestApi(username, password, host, port, protocol) + return api #################################################################### # Testing diff --git a/src/python/dm/ds_web_service/api/fileRestApi.py b/src/python/dm/ds_web_service/api/fileRestApi.py new file mode 100755 index 0000000000000000000000000000000000000000..a0de650de53142c7a5ffb6d51f5a3b16ff31120d --- /dev/null +++ b/src/python/dm/ds_web_service/api/fileRestApi.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +import os +import urllib + +from dm.common.utility.encoder import Encoder +from dm.common.exceptions.dmException import DmException +from dm.common.objects.fileMetadata import FileMetadata +from dsRestApi import DsRestApi + +class FileRestApi(DsRestApi): + + def __init__(self, username=None, password=None, host=None, port=None, protocol=None): + DsRestApi.__init__(self, username, password, host, port, protocol) + + @DsRestApi.execute + def processFile(self, fileName, filePath, experimentName): + url = '%s/files/processFile' % (self.getContextRoot()) + if not fileName: + raise InvalidRequest('File name must be provided.') + url += '?fileName=%s' % Encoder.encode(fileName) + if not filePath: + raise InvalidRequest('File path must be provided.') + url += '&filePath=%s' % Encoder.encode(filePath) + if not experimentName: + raise InvalidRequest('Experiment name must be provided.') + url += '&experimentName=%s' % Encoder.encode(experimentName) + responseDict = self.sendSessionRequest(url=url, method='POST') + return FileMetadata(responseDict) + +####################################################################### +# Testing. + +if __name__ == '__main__': + api = FileRestApi('sveseli', 'sveseli', 'zagreb.svdev.net', 22236, 'http') + print api.processFile('file1', '/ESAF/exp1', 'exp1') +