Forked from
DM / dm-docs
261 commits behind, 574 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
addExperimentCli.py 2.24 KiB
#!/usr/bin/env python
from dm.ds_web_service.api.experimentRestApi import ExperimentRestApi
from dm.common.exceptions.invalidRequest import InvalidRequest
from dsWebServiceSessionCli import DsWebServiceSessionCli
class AddExperimentCli(DsWebServiceSessionCli):
def __init__(self):
DsWebServiceSessionCli.__init__(self)
self.addOption('', '--experiment', dest='experimentName', help='Experiment name.')
self.addOption('', '--type-id', dest='typeId', help='Experiment type id.')
self.addOption('', '--description', dest='description', help='Experiment description.')
self.addOption('', '--start-date', dest='startDate', help='Experiment start date in format DD-MMM-YY.')
self.addOption('', '--end-date', dest='endDate', help='Experiment end date in format DD-MMM-YY.')
def checkArgs(self):
if self.options.experimentName is None:
raise InvalidRequest('Experiment name must be provided.')
if self.options.typeId is None:
raise InvalidRequest('Experiment type id must be provided.')
def getExperimentName(self):
return self.options.experimentName
def getTypeId(self):
return self.options.typeId
def getDescription(self):
return self.options.description
def getStartDate(self):
return self.options.startDate
def getEndDate(self):
return self.options.endDate
def runCommand(self):
self.parseArgs(usage="""
dm-add-experiment --experiment=EXPERIMENTNAME --type-id=TYPEID
[--description=DESCRIPTION]
[--start-date=STARTDATE]
[--end-date=ENDDATE]
Description:
Add new experiment to the DM database.
""")
self.checkArgs()
api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
experiment = api.addExperiment(self.getExperimentName(), self.getTypeId(), self.getDescription(), self.getStartDate(), self.getEndDate())
print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat())
#######################################################################
# Run command.
if __name__ == '__main__':
cli = AddExperimentCli()
cli.run()