From f62d5b1fd028b971db488ba5d60a97ce50265391 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Fri, 6 May 2016 19:07:40 +0000 Subject: [PATCH] adding revised cli for retrieving experiment file --- .../cli/getExperimentFileCli.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 src/python/dm/cat_web_service/cli/getExperimentFileCli.py diff --git a/src/python/dm/cat_web_service/cli/getExperimentFileCli.py b/src/python/dm/cat_web_service/cli/getExperimentFileCli.py new file mode 100755 index 00000000..63c30a58 --- /dev/null +++ b/src/python/dm/cat_web_service/cli/getExperimentFileCli.py @@ -0,0 +1,42 @@ +#!/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() + -- GitLab