#!/usr/bin/env python from dm.ds_web_service.api.experimentRestApi import ExperimentRestApi from dm.common.utility.configurationManager import ConfigurationManager from dsWebServiceSessionCli import DsWebServiceSessionCli class GetExperimentsCli(DsWebServiceSessionCli): def __init__(self): DsWebServiceSessionCli.__init__(self) self.addOption('', '--station', dest='stationName', help='Experiment station name, can also be set via DM_STATION_NAME environment variable.') def getStationName(self): stationName = self.options.stationName if not stationName: configManager = ConfigurationManager.getInstance() stationName = configManager.getStationName() return stationName def runCommand(self): self.parseArgs(usage=""" dm-get-experiments [--station=STATIONNAME] Description: Retrieves list of experiments for a given station. If station name is not provided, this command will return list of experiments for all stations (requires administrator privileges). """) api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol()) stationName = self.getStationName() if not stationName: experiments = api.getExperiments() else: experiments = api.getExperimentsByStation(stationName) for experiment in experiments: print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat()) ####################################################################### # Run command. if __name__ == '__main__': cli = GetExperimentsCli() cli.run()