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 #!/usr/bin/env python
import os
from dm.common.cli.dmRestSessionCli import DmRestSessionCli from dm.common.cli.dmRestSessionCli import DmRestSessionCli
from dm.common.utility.osUtility import OsUtility from dm.common.utility.osUtility import OsUtility
from dm.common.utility.configurationManager import ConfigurationManager from dm.common.utility.configurationManager import ConfigurationManager
...@@ -7,6 +8,7 @@ from dm.common.utility.configurationManager import ConfigurationManager ...@@ -7,6 +8,7 @@ from dm.common.utility.configurationManager import ConfigurationManager
class DaqWebServiceSessionCli(DmRestSessionCli): class DaqWebServiceSessionCli(DmRestSessionCli):
""" DM DAQ web service session cli class. """ """ 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' DEFAULT_SESSION_CACHE_FILE = OsUtility.getUserHomeDir() + '/.dm/.daq.session.cache'
def __init__(self, validArgCount=0): def __init__(self, validArgCount=0):
...@@ -19,3 +21,17 @@ class DaqWebServiceSessionCli(DmRestSessionCli): ...@@ -19,3 +21,17 @@ class DaqWebServiceSessionCli(DmRestSessionCli):
def getDefaultServicePort(self): def getDefaultServicePort(self):
return ConfigurationManager.getInstance().getDaqWebServicePort() 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): ...@@ -8,7 +8,7 @@ class StartDaqCli(DaqWebServiceSessionCli):
def __init__(self): def __init__(self):
DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS) DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS)
self.addOption('', '--experiment', dest='experimentName', help='Experiment name.') 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): def checkArgs(self):
if self.options.experimentName is None: if self.options.experimentName is None:
...@@ -16,12 +16,6 @@ class StartDaqCli(DaqWebServiceSessionCli): ...@@ -16,12 +16,6 @@ class StartDaqCli(DaqWebServiceSessionCli):
if self.options.dataDirectory is None: if self.options.dataDirectory is None:
raise InvalidRequest('Experiment data directory must be provided.') 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): def runCommand(self):
self.parseArgs(usage=""" self.parseArgs(usage="""
dm-start-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY dm-start-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
...@@ -30,7 +24,7 @@ class StartDaqCli(DaqWebServiceSessionCli): ...@@ -30,7 +24,7 @@ class StartDaqCli(DaqWebServiceSessionCli):
Description: Description:
Starts DAQ for a given experiment. Specified data directory will be Starts DAQ for a given experiment. Specified data directory will be
monitored for data files. All provided key/value pairs will be passed to monitored for data files. All provided key/value pairs will be passed to
file processing plugins. file processing plugins.
""") """)
self.checkArgs() self.checkArgs()
api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol()) api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
......
...@@ -8,7 +8,7 @@ class StopDaqCli(DaqWebServiceSessionCli): ...@@ -8,7 +8,7 @@ class StopDaqCli(DaqWebServiceSessionCli):
def __init__(self): def __init__(self):
DaqWebServiceSessionCli.__init__(self) DaqWebServiceSessionCli.__init__(self)
self.addOption('', '--experiment', dest='experimentName', help='Experiment name.') 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): def checkArgs(self):
if self.options.experimentName is None: if self.options.experimentName is None:
...@@ -16,12 +16,6 @@ class StopDaqCli(DaqWebServiceSessionCli): ...@@ -16,12 +16,6 @@ class StopDaqCli(DaqWebServiceSessionCli):
if self.options.dataDirectory is None: if self.options.dataDirectory is None:
raise InvalidRequest('Experiment data directory must be provided.') 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): def runCommand(self):
self.parseArgs(usage=""" self.parseArgs(usage="""
dm-stop-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY dm-stop-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
......
...@@ -8,7 +8,7 @@ class UploadCli(DaqWebServiceSessionCli): ...@@ -8,7 +8,7 @@ class UploadCli(DaqWebServiceSessionCli):
def __init__(self): def __init__(self):
DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS) DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS)
self.addOption('', '--experiment', dest='experimentName', help='Experiment name.') 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): def checkArgs(self):
if self.options.experimentName is None: if self.options.experimentName is None:
...@@ -16,12 +16,6 @@ class UploadCli(DaqWebServiceSessionCli): ...@@ -16,12 +16,6 @@ class UploadCli(DaqWebServiceSessionCli):
if self.options.dataDirectory is None: if self.options.dataDirectory is None:
raise InvalidRequest('Experiment data directory must be provided.') 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): def runCommand(self):
self.parseArgs(usage=""" self.parseArgs(usage="""
dm-upload --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY 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