diff --git a/doc/sphinx/source/dm.ds_web_service.api.rst b/doc/sphinx/source/dm.ds_web_service.api.rst new file mode 100644 index 0000000000000000000000000000000000000000..da6ab6d5d262a95a233672798ea16191e8fa2d8a --- /dev/null +++ b/doc/sphinx/source/dm.ds_web_service.api.rst @@ -0,0 +1,12 @@ +.. automodule:: dm.ds_web_service.api + +.. currentmodule:: dm.ds_web_service.api + +ExperimentDsApi +----------------- + +.. autoclass:: dm.ds_web_service.api.experimentDsApi.ExperimentDsApi() + :show-inheritance: + :members: __init__, getExperimentTypes, getExperiments + + diff --git a/doc/sphinx/source/index.rst b/doc/sphinx/source/index.rst index d7220f53355315c8812f0e9bc38bea52a622de8b..ea388478339cfa72c746851040b3d5fcd8534a95 100644 --- a/doc/sphinx/source/index.rst +++ b/doc/sphinx/source/index.rst @@ -12,6 +12,7 @@ The `dm` package contains python APIs for accessing Data Management services. :maxdepth: 4 :caption: Contents: + dm.ds_web_service.api dm.daq_web_service.api dm.aps_bss.api diff --git a/src/python/dm/daq_web_service/api/experimentDaqApi.py b/src/python/dm/daq_web_service/api/experimentDaqApi.py index 4dc9f83fd253d3308f6db22efa8557159d076262..802ebf5ee0d71d8b6452747bb7839a8b10e43474 100755 --- a/src/python/dm/daq_web_service/api/experimentDaqApi.py +++ b/src/python/dm/daq_web_service/api/experimentDaqApi.py @@ -38,7 +38,7 @@ class ExperimentDaqApi(DaqRestApi): :param protocol: DM service protocol :type protocol: str - >>> api = ExperimentDaqApi(username='dm', password='XYZ', host='bluegill1', port=22236, protocol='https') + >>> api = ExperimentDaqApi(username='dm', password='XYZ', host='bluegill1', port=33336, protocol='https') ''' DaqRestApi.__init__(self, username, password, host, port, protocol) diff --git a/src/python/dm/ds_web_service/api/experimentDsApi.py b/src/python/dm/ds_web_service/api/experimentDsApi.py index cf2314f3a3385613911c8810835f42db020c309f..f898f86612b40b97b1818d4c88d529f580d7f6c7 100755 --- a/src/python/dm/ds_web_service/api/experimentDsApi.py +++ b/src/python/dm/ds_web_service/api/experimentDsApi.py @@ -10,18 +10,70 @@ from dm.common.objects.experimentType import ExperimentType from dsRestApi import DsRestApi class ExperimentDsApi(DsRestApi): + ''' + Data Management API for accessing experiment interface provided by the + DS service. + ''' def __init__(self, username=None, password=None, host=None, port=None, protocol=None): + ''' + Constructor. + + :param username: DM username + :type username: str + + :param password: DM password + :type password: str + + :param host: DM service host + :type host: str + + :param port: DM service port + :type port: int + + :param protocol: DM service protocol + :type protocol: str + + >>> api = ExperimentDsApi(username='dm', password='XYZ', host='bluegill1', port=22236, protocol='https') + ''' DsRestApi.__init__(self, username, password, host, port, protocol) - @DsRestApi.execute + @DsRestApi.execute2 def getExperimentTypes(self): + ''' + Get list of allowed experiment types. + + :returns: list of ExperimentType objects + + :raises AuthorizationError: in case user is not logged in + + :raises DmException: in case of any other errors + + >>> experimentTypeList = api.getExperimentTypes() + >>> for experimentType in experimentTypeList: + >>> print experimentType['id'], experimentType['name'] + ''' + url = '%s/experimentTypes' % (self.getContextRoot()) responseData = self.sendSessionRequest(url=url, method='GET') return self.toDmObjectList(responseData, ExperimentType) - @DsRestApi.execute + @DsRestApi.execute2 def getExperiments(self): + ''' + Get list of known experiments. + + :returns: list of Experiment objects + + :raises AuthorizationError: in case user does not have DM administrator role + + :raises DmException: in case of any other errors + + >>> experimentList = api.getExperiments() + >>> for experiment in experimentList: + >>> print experiment['id'], experiment['name'] + ''' + url = '%s/experiments' % (self.getContextRoot()) responseData = self.sendSessionRequest(url=url, method='GET') return self.toDmObjectList(responseData, Experiment)