From e674de623c6d8473e0c4ea6cfb26ac70ccdcd0b6 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Fri, 26 Jun 2015 20:06:41 +0000 Subject: [PATCH] allow arbitrary key-value pairs to be passed to daq service and to processing plugins --- src/python/dm/daq_web_service/cli/startDaqCli.py | 10 +++++++--- src/python/dm/daq_web_service/cli/uploadCli.py | 8 ++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/python/dm/daq_web_service/cli/startDaqCli.py b/src/python/dm/daq_web_service/cli/startDaqCli.py index 81af4eb2..a88cca0f 100755 --- a/src/python/dm/daq_web_service/cli/startDaqCli.py +++ b/src/python/dm/daq_web_service/cli/startDaqCli.py @@ -6,7 +6,7 @@ from daqWebServiceSessionCli import DaqWebServiceSessionCli class StartDaqCli(DaqWebServiceSessionCli): def __init__(self): - DaqWebServiceSessionCli.__init__(self) + DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS) self.addOption('', '--experiment', dest='experimentName', help='Experiment name.') self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory.') @@ -25,13 +25,17 @@ class StartDaqCli(DaqWebServiceSessionCli): def runCommand(self): self.parseArgs(usage=""" dm-start-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY + [key1:value1, key2:value2, ...] Description: - Starts DAQ for a given experiment. Provided data directory will be monitored for data files. + Starts DAQ for a given experiment. Specified data directory will be + monitored for data files. All provided key/value pairs will be passed to + file processing plugins. """) self.checkArgs() api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol()) - experiment = api.startDaq(self.getExperimentName(), self.getDataDirectory()) + daqInfo = self.splitArgsIntoDict() + experiment = api.startDaq(self.getExperimentName(), self.getDataDirectory(), daqInfo=daqInfo) print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat()) ####################################################################### diff --git a/src/python/dm/daq_web_service/cli/uploadCli.py b/src/python/dm/daq_web_service/cli/uploadCli.py index ea247a8f..9c75cc18 100755 --- a/src/python/dm/daq_web_service/cli/uploadCli.py +++ b/src/python/dm/daq_web_service/cli/uploadCli.py @@ -6,7 +6,7 @@ from dm.common.exceptions.invalidRequest import InvalidRequest class UploadCli(DaqWebServiceSessionCli): def __init__(self): - DaqWebServiceSessionCli.__init__(self) + DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS) self.addOption('', '--experiment', dest='experimentName', help='Experiment name.') self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory.') @@ -25,9 +25,13 @@ class UploadCli(DaqWebServiceSessionCli): def runCommand(self): self.parseArgs(usage=""" dm-upload --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY + [key1:value1, key2:value2, ...] Description: - Schedules data upload for a given experiment. + Schedules data upload for a given experiment. All existing files in the + specified directory will be uploaded to storage. Relative directory + structure will be preserved. All provided key/value pairs will be passed + to file processing plugins. """) self.checkArgs() api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol()) -- GitLab