220 likes | 541 Views
GFAL/LCGUTIL to GFAL2/GFAL2 migration. Alejandro Alvarez Ayllon on behalf of the DM Clients developers. Remember remember the 1 st of November. The 1 st of November. GFAL/LCGUTIL will not be supported They will be removed from Fedora/EPEL
E N D
GFAL/LCGUTILtoGFAL2/GFAL2 migration Alejandro Alvarez Ayllon on behalf of the DM Clients developers
The 1st of November • GFAL/LCGUTIL will not be supported • They will be removed from Fedora/EPEL • Fear not! We will give support for migration indefinitely
Release cycle for gfal2 components Merges EPEL Testing Development RC EPEL • Increase of minor version • New functionalities • Non critical bug fixes • Nightly tests • Deployed in the FTS3 Development Services • Increase of release number • “Quarantine” stage of a release • Packaging fixes • Critical patches • Beta testers welcome! • Increase of revision number • Critical bug fixes • Deployed in the FTS3 Pilot Service • Full production release
Installation • Enable EPEL (5, 6 or even 7!) • Install • gfal2-all • Core + Transfer, DCAP, GridFTP, HTTP/DAV, LFC, RFIO and SRM • gfal2-python • gfal2-util • gfal2-plugin-xrootd for xrootd support
Fast check $ voms-proxy-init --vomsdteam $ gfal-ls gsiftp://lxfsra04a04.cern.ch/dpm/ drwxr-xr-x 0 0 0 Jul 12 2013 0 cern.ch
Command Line Interface Side by side
Two Swiss Army Knifes: gfal-copy LFC is not a special citizen, but some operations can be mapped easily Registration = COPY
# Copy & Register (lcg-cr) gfal-copy file:///local/file gsiftp://se.cern.ch \ lfc://lfc.cern.ch/lfn # Copy & Register (lcg-rep) gfal-copy gsiftp://se-a/path gsiftp://se-b/path lfc://lfc.cern.ch/lfn # Register a file (lcg-rf) gfal-copy gsiftp://se/path lfc://lfc.cern.ch/lfn
Two Swiss Army Knifes: gfal-xattr • Get/set extended attributes: key => value • Some “special” mappings • user.replicas • user.guid • user.comment • spacetoken • spacetoken.token?<token> • spacetoken.description?<description>
GFAL2 Python API Side by side
GFAL: Less Pythonic importgfal gfalDict = {‘surls’: ‘srm://…’} err, obj, msg = gfal.gfal_init(gfalDict) ret, buff, msg = gfal.gfal_ls(obj) gfal.internal_free(obj)
GFAL2: More Pythonic import gfal2 ctx = gfal2.creat_context() try: ctx.listdir(‘srm://…’) except gfal2.Gerror, e: print“[%d] %s” % (e.code, e.message)
Copy a file • ctx.filecopy(params, source, dest) • Params is an instance of ctx.transfer_parameters • Members • checksum_check • set_user_defined_checksum(algo, value) • dst_spacetoken • event_callback • monitor_callback • nbstreams • overwrite • src_spacetoken • timeout
Examples Check our repository https://svnweb.cern.ch/trac/lcgutil/browser/gfal2-bindings/trunk/example/python
Do not forget • Supported protocols • SRM • GridFTP • HTTP/DAV • LFC • RFIO • DCAP • XROOTD New DM Clients and retirement plans for old ones