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

support for DM_FILE_SERVER_URL variable

parent b0f265df
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python
import os
from dm.common.cli.dmRestSessionCli import DmRestSessionCli
from dm.common.utility.osUtility import OsUtility
from dm.common.utility.configurationManager import ConfigurationManager
......@@ -7,6 +8,7 @@ from dm.common.utility.configurationManager import ConfigurationManager
class DaqWebServiceSessionCli(DmRestSessionCli):
""" DM DAQ web service session cli class. """
DM_FILE_SERVER_URL_ENV_VAR = 'DM_FILE_SERVER_URL'
DEFAULT_SESSION_CACHE_FILE = OsUtility.getUserHomeDir() + '/.dm/.daq.session.cache'
def __init__(self, validArgCount=0):
......@@ -19,3 +21,17 @@ class DaqWebServiceSessionCli(DmRestSessionCli):
def getDefaultServicePort(self):
return ConfigurationManager.getInstance().getDaqWebServicePort()
def getId(self):
return self.options.id
def getExperimentName(self):
return self.options.experimentName
def getDataDirectory(self):
dataDirectory = self.options.dataDirectory
# Make sure data directory already does not have url scheme
if dataDirectory and dataDirectory.find('://') < 0:
fileServerUrl = os.environ.get(self.DM_FILE_SERVER_URL_ENV_VAR, '')
dataDirectory = '%s%s' % (fileServerUrl, dataDirectory)
return dataDirectory
......@@ -8,7 +8,7 @@ class StartDaqCli(DaqWebServiceSessionCli):
def __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.')
self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory. If specified string does not already contain file server URL, value of the %s environment variable will be prepended to it.' % self.DM_FILE_SERVER_URL_ENV_VAR)
def checkArgs(self):
if self.options.experimentName is None:
......@@ -16,12 +16,6 @@ class StartDaqCli(DaqWebServiceSessionCli):
if self.options.dataDirectory is None:
raise InvalidRequest('Experiment data directory must be provided.')
def getExperimentName(self):
return self.options.experimentName
def getDataDirectory(self):
return self.options.dataDirectory
def runCommand(self):
self.parseArgs(usage="""
dm-start-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
......@@ -30,7 +24,7 @@ class StartDaqCli(DaqWebServiceSessionCli):
Description:
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.
file processing plugins.
""")
self.checkArgs()
api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
......
......@@ -8,7 +8,7 @@ class StopDaqCli(DaqWebServiceSessionCli):
def __init__(self):
DaqWebServiceSessionCli.__init__(self)
self.addOption('', '--experiment', dest='experimentName', help='Experiment name.')
self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory.')
self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory. If specified string does not already contain file server URL, value of the %s environment variable will be prepended to it.' % self.DM_FILE_SERVER_URL_ENV_VAR)
def checkArgs(self):
if self.options.experimentName is None:
......@@ -16,12 +16,6 @@ class StopDaqCli(DaqWebServiceSessionCli):
if self.options.dataDirectory is None:
raise InvalidRequest('Experiment data directory must be provided.')
def getExperimentName(self):
return self.options.experimentName
def getDataDirectory(self):
return self.options.dataDirectory
def runCommand(self):
self.parseArgs(usage="""
dm-stop-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
......
......@@ -8,7 +8,7 @@ class UploadCli(DaqWebServiceSessionCli):
def __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.')
self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory. If specified string does not already contain file server URL, value of the %s environment variable will be prepended to it.' % self.DM_FILE_SERVER_URL_ENV_VAR)
def checkArgs(self):
if self.options.experimentName is None:
......@@ -16,12 +16,6 @@ class UploadCli(DaqWebServiceSessionCli):
if self.options.dataDirectory is None:
raise InvalidRequest('Experiment data directory must be provided.')
def getExperimentName(self):
return self.options.experimentName
def getDataDirectory(self):
return self.options.dataDirectory
def runCommand(self):
self.parseArgs(usage="""
dm-upload --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
......
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