diff --git a/src/python/dm/ds_web_service/cli/statExperimentFileCli.py b/src/python/dm/ds_web_service/cli/statExperimentFileCli.py new file mode 100755 index 0000000000000000000000000000000000000000..6e0565a33db06362121ec5d1a1130f7e80754a2c --- /dev/null +++ b/src/python/dm/ds_web_service/cli/statExperimentFileCli.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +from dm.common.exceptions.invalidRequest import InvalidRequest +from dm.ds_web_service.api.fileRestApi import FileRestApi +from dsWebServiceSessionCli import DsWebServiceSessionCli + +class StatExperimentFileCli(DsWebServiceSessionCli): + def __init__(self): + DsWebServiceSessionCli.__init__(self) + self.addOption('', '--experiment', dest='experimentName', help='Experiment name.') + self.addOption('', '--relative-path', dest='experimentFilePath', help='Experiment (relative) file path.') + + def checkArgs(self): + if self.options.experimentFilePath is None: + raise InvalidRequest('Experiment file path must be provided.') + if self.options.experimentName is None: + raise InvalidRequest('Experiment name 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 --experiment=EXPERIMENTNAME --relative-path=EXPERIMENTFILEPATH + +Description: + Retrieves stat information for a given file. + """) + self.checkArgs() + api = FileRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol()) + fileMetadata = api.statFile(self.getExperimentFilePath(), self.getExperimentName()) + print fileMetadata.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat()) + +####################################################################### +# Run command. +if __name__ == '__main__': + cli = StatExperimentFileCli() + cli.run() +