#!/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('', '--name', dest='name', help='Experiment name.') self.addOption('', '--type-id', dest='typeId', help='Experiment type id.') self.addOption('', '--description', dest='description', help='Experiment description.') def checkArgs(self): if self.options.name is None: raise InvalidRequest('Experiment name must be provided.') if self.options.typeId is None: raise InvalidRequest('Experiment type id must be provided.') def getName(self): return self.options.name def getTypeId(self): return self.options.typeId def getDescription(self): return self.options.description def runCommand(self): self.parseArgs(usage=""" dm-add-experiment --name=NAME --type-id=TYPEID [--description=DESCRIPTION] 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.getName(), self.getTypeId(), self.getDescription()) print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat()) ####################################################################### # Run command. if __name__ == '__main__': cli = AddExperimentCli() cli.run()