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