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

import os
import urllib
import json

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, filePath, experimentName, fileInfo={}):
        url = '%s/files/processFile' % (self.getContextRoot())
        if not filePath:
            raise InvalidRequest('File path must be provided.')
        if not experimentName:
            raise InvalidRequest('Experiment name must be provided.')
        fileInfo['filePath'] = filePath
        fileInfo['experimentName'] = experimentName
        url += '?fileInfo=%s' % (Encoder.encode(json.dumps(fileInfo)))
        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')