Developers
Marco
Description
DDMSvcCC is a server that can be used to resolge ATLAS Globally Unique file IDs (GUID) to DataSet names or Logical File Names (LFN).
It has been developed to be used by ELSSI. The service is currently installed on uct2-dss at MWT2.
API
This server
http://uct2-dss.uchicago.edu:8989/ddmsvc/ccserver
provides a JSON-RPC (
http://json-rpc.org/) interface to query the DQ2 cental catalog.
echo
Test function. Echoes the input. Basically to ping the service.
getDSListfromGUIDs
For each file GUID in the input it returns the list of DataSets containing that file. Order is preserved.
- in
- guidlist - array of strings - List of file GUIDs
- out
- retlist - array of array of strings - List of lists of DataSet names
getDSfromGUIDs
For each file GUID in the input it returns one DataSet containing that file. Order is preserved.
- in
- guidlist - array of strings - List of file GUIDs
- out
- retlist - array of strings - List of DataSet names
getUniqueDSfromGUIDs
It returns a list of unique DataSet Names. Each file GUID in the input is included in at least one of the DataSets in the output. Order is not preserved. len(retlist) <= len(guidlist)
- in
- guidlist - array of strings - List of file GUIDs
- out
- retlist - array of strings - List of DataSet names
getLFNfromGUID
For each file GUID in the input it returns one LFN of that file. Order is preserved. Note that in the ATLAS model the GUID is a unique identifier for a file. LFNs are symbolic names, aliases.
- in
- guidlist - array of strings - List of file GUIDs
- out
- retlist - array of strings - List of LFNs
Examples
Here is an example of how to use ddmsvc.
This example uses a JSON-RPC client for Python:
>>> from jsonrpc import ServiceProxy
>>> s = ServiceProxy("http://uct2-dss.uchicago.edu/ddmsvc/ccserver")
>>> s.getDSListfromGUIDs(['CE21D831-9177-DD11-B9B6-0016177CA79A'])
{'id': 'jsonrpc', 'result': [['user08.NurcanOzturk.FDR2c.0052280Jet.D3PD_shadow', 'user08.KojiTerashi.LightPerfDPDv1_Pt200_Eta5.fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26_shadow', 'fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26', 'user08.HongMa.fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26.DPD_v14_2_20-V3_shadow', 'user.ZhijunLiang.DibosonAnalysis.000007.fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26_shadow']], 'error': None}
[['user08.NurcanOzturk.FDR2c.0052280Jet.D3PD_shadow', 'user08.KojiTerashi.LightPerfDPDv1_Pt200_Eta5.fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26_shadow', 'fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26', 'user08.HongMa.fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26.DPD_v14_2_20-V3_shadow', 'user.ZhijunLiang.DibosonAnalysis.000007.fdr08_run2.0052280.physics_Jet.merge.AOD.o3_f47_m26_shadow']]
>>>
Status
The server is little more than a prototype. It needs several improvements:
- performance (basic function optimization, pooling, caching)
- security (user authentication, ModGSI in Apache)
- hardening on the server (start/stop scripts, ...)
Plan
Future plans include:
- improvement of the service
- possible extension of the API
- addition of a local catalog service
- installation on the ELSSI server at CERN
--
MarcoMambelli - 24 Feb 2009