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

reworked catalogging to use collection on a per experiment basis; removed...

reworked catalogging to use collection on a per experiment basis; removed generic apis for retrieving files
parent 7f9f84ed
No related branches found
No related tags found
No related merge requests found
#!/bin/sh
# Run command
if [ -z $DM_ROOT_DIR ]; then
cd `dirname $0` && myDir=`pwd`
setupFile=$myDir/../setup.sh
if [ ! -f $setupFile ]; then
echo "Cannot find setup file: $setupFile"
exit 1
fi
source $setupFile > /dev/null
fi
source dm_command_setup.sh
eval "$DM_ROOT_DIR/src/python/dm/cat_web_service/cli/getFilesCli.py $DM_COMMAND_ARGS"
......@@ -23,7 +23,7 @@ class FileRestApi(CatRestApi):
experimentFilePath = fileInfo.get('experimentFilePath')
if not experimentFilePath:
raise InvalidRequest('File metadata must contain experimentFilePath key.')
url = '%s/filesByExperiment/%s/%s' % (self.getContextRoot(), experimentName, Encoder.encode(experimentFilePath))
url = '%s/filesByExperimentAndPath/%s/%s' % (self.getContextRoot(), experimentName, Encoder.encode(experimentFilePath))
url += '?fileInfo=%s' % (Encoder.encode(json.dumps(fileInfo)))
responseData = self.sendSessionRequest(url=url, method='POST')
return FileMetadata(responseData)
......@@ -36,28 +36,24 @@ class FileRestApi(CatRestApi):
experimentFilePath = fileInfo.get('experimentFilePath')
if not experimentFilePath:
raise InvalidRequest('File metadata must contain experimentFilePath key.')
url = '%s/filesByExperiment/%s/%s' % (self.getContextRoot(), experimentName, Encoder.encode(experimentFilePath))
url = '%s/filesByExperimentAndPath/%s/%s' % (self.getContextRoot(), experimentName, Encoder.encode(experimentFilePath))
url += '?fileInfo=%s' % (Encoder.encode(json.dumps(fileInfo)))
responseData = self.sendSessionRequest(url=url, method='PUT')
return FileMetadata(responseData)
@CatRestApi.execute
def updateFileById(self, fileInfo):
def updateExperimentFileById(self, fileInfo):
experimentName = fileInfo.get('experimentName')
if not experimentName:
raise InvalidRequest('File metadata must contain experimentName key.')
id = fileInfo.get('id')
if not id:
raise InvalidRequest('File metadata must contain id key.')
url = '%s/files/%s' % (self.getContextRoot(), id)
url = '%s/filesByExperimentAndId/%s/%s' % (self.getContextRoot(), experimentName, id)
url += '?fileInfo=%s' % (Encoder.encode(json.dumps(fileInfo)))
responseData = self.sendSessionRequest(url=url, method='PUT')
return FileMetadata(responseData)
@CatRestApi.execute
def getFiles(self, queryDict={}):
url = '%s/files' % (self.getContextRoot())
url += '?queryDict=%s' % (Encoder.encode(json.dumps(queryDict)))
responseData = self.sendSessionRequest(url=url, method='GET')
return self.toDmObjectList(responseData, FileMetadata)
@CatRestApi.execute
def getExperimentFiles(self, experimentName, queryDict={}):
if not experimentName:
......@@ -68,10 +64,12 @@ class FileRestApi(CatRestApi):
return self.toDmObjectList(responseData, FileMetadata)
@CatRestApi.execute
def getFileById(self, id):
def getExperimentFileById(self, experimentName, id):
if not experimentName:
raise InvalidRequest('Invalid experiment name provided.')
if not id:
raise InvalidRequest('Invalid file id provided.')
url = '%s/files/%s' % (self.getContextRoot(), id)
url = '%s/filesByExperimentAndId/%s/%s' % (self.getContextRoot(), experimentName, id)
responseData = self.sendSessionRequest(url=url, method='GET')
return FileMetadata(responseData)
......@@ -81,7 +79,7 @@ class FileRestApi(CatRestApi):
raise InvalidRequest('Invalid experiment name provided.')
if not experimentFilePath:
raise InvalidRequest('Invalid experiment file path provided.')
url = '%s/filesByExperiment/%s/%s' % (self.getContextRoot(), experimentName, Encoder.encode(experimentFilePath))
url = '%s/filesByExperimentAndPath/%s/%s' % (self.getContextRoot(), experimentName, Encoder.encode(experimentFilePath))
responseData = self.sendSessionRequest(url=url, method='GET')
return FileMetadata(responseData)
......@@ -90,9 +88,6 @@ class FileRestApi(CatRestApi):
if __name__ == '__main__':
api = FileRestApi()
print api.getFiles()
print api.getFileById('556de0059e058b0ef4c4413b')
print api.getFileByName('xyz-001')
import time
t = long(time.time())
......
#!/usr/bin/env python
from dm.cat_web_service.api.fileRestApi import FileRestApi
from dm.common.exceptions.invalidRequest import InvalidRequest
from catWebServiceSessionCli import CatWebServiceSessionCli
class GetExperimentFileCli(CatWebServiceSessionCli):
def __init__(self):
CatWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS)
self.addOption('', '--file', dest='experimentFilePath', help='Experiment file path.')
self.addOption('', '--experiment', dest='experimentName', help='Experiment name.')
def checkArgs(self):
if self.options.experimentName is None:
raise InvalidRequest('Experiment name must be provided.')
if self.options.experimentFilePath is None:
raise InvalidRequest('Experiment file path must be provided.')
def getExperimentName(self):
return self.options.experimentName
def getExperimentFilePath(self):
return self.options.experimentFilePath
def runCommand(self):
self.parseArgs(usage="""
dm-get-experiment-file --file=EXPERIMENTFILEPATH --experiment=EXPERIMENTNAME
Description:
Retrieve experiment file metadata from the catalog.
""")
self.checkArgs()
api = FileRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
fileMetadata = api.getExperimentFile(self.getExperimentName(), self.getExperimentFilePath())
print fileMetadata.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat())
#######################################################################
# Run command.
if __name__ == '__main__':
cli = GetExperimentFileCli()
cli.run()
#!/usr/bin/env python
from dm.cat_web_service.api.fileRestApi import FileRestApi
from dm.common.exceptions.invalidRequest import InvalidRequest
from catWebServiceSessionCli import CatWebServiceSessionCli
class GetFilesCli(CatWebServiceSessionCli):
def __init__(self):
CatWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS)
def checkArgs(self):
pass
def runCommand(self):
self.parseArgs(usage="""
dm-get-files
[key1:value1, key2:value2, ...]
Description:
Retrieve files from the metadata catalog. Only those files that
match provided key/value metadata pairs will be returned. If no specific
metadata key/values are requested, all experiment files will be returned.
""")
self.checkArgs()
api = FileRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
queryDict = self.splitArgsIntoDict()
fileMetadataList = api.getFiles(queryDict)
for fileMetadata in fileMetadataList:
print fileMetadata.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat())
#######################################################################
# Run command.
if __name__ == '__main__':
cli = GetFilesCli()
cli.run()
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