Pic rucio client
Introduction
The PIC Rucio client is a python package developed with the purpose of automating the transfers from an origin storage endpoint (e.g. Magic observatory) to a destination one (e.g. PIC).
The package contains the pic_rucio executable that can be run
as a cron to discover new files, trigger their transfer and update their status.
Requirements
- python >= 3.6
- python-gfal2: WARNING The installation of this package through pip may not be straightforward
- rucio_clients
Installation
From the root folder, in an environment with python and pip installed.
pip install .
Documentation
Configuration
TBD
Workflow
- File discovery through DB or CSV (WIP)
- ES status check
- Metadata construction
- Origin RSE replica registry
- Destination RSE replication rule creation
- Outdated replica rule creation to purge replicas in the origin RSE (To be fixed)
Magic implementation
The implementation of the PIC Rucio Client for Magic contains some tricks that are crucial for its correct fuctioning
- Configuration
- lfn2pfn algorithm:
identity, the pfn is the lfn - schema: allow additional characters (
/,+, etc) in the DID name to allow storing paths in thename - scope:
pnfs
- lfn2pfn algorithm:
- RSEs:
- Origin:
ORM-NON-DET, non-deterministic GridFTP RSE at Roque de los Muchachos Observatory. - Destination:
MAGIC-PRD, deterministic GridFTP RSE pointing todoor05.pic.esat PIC, withprefix=//
- Origin:
- DIDs
- Files: the name contains the full path to PIC storage without
the leading
pnfsadded because it is the scope, e.g.:pic.es/data/magic/Data/SuperStar/v1/4C+27.50/2024_09_12/20240912_05116784_S_4C+27.50-W0.40+180.root.{scope}/{name}is the real path at PIC. - Datasets:
- Run (e.g. 5116790), should contain the files in a run. All the ones I inspected are empty.
- Outdated replication dataset (e.g. pnfs:outdated_replication_dataset-3cef6bc5-1d8c-493d-aaad-2868b18a2f5e) The intention of this was to trigger the deletion of the replicas at ORM after successfully transferred, but this mechanism doesn't seem to be working.
- Containers:
- %Y_%M_%d: observation date, empty
- Source name: empty
- Files: the name contains the full path to PIC storage without
the leading
Check the Magic example in the development environment
Development
installation
The same but will be installed in editable mode and some additional packages needed for development will be included.
pip install -e .[dev]
pre-commit hooks
Some pre-commit hooks are included to enforce best practices. See the pre-commit documentation
Install hooks: pre-commit install
Run hooks manually: pre-commit run --all-files
Metadata
Release files for pic-rucio 2024.10.2.224844
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pic_rucio-2024.10.2.224844-py3-none-any.whl | Python 3 | none | any | Details for pic_rucio-2024.10.2.224844-py3-none-any.whl |
Release files / pic_rucio-2024.10.2.224844-py3-none-any.whl
| Download URL | pic_rucio-2024.10.2.224844-py3-none-any.whl |
|---|---|
| Size | 31.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1ed3e5e2733daa84f0663fd3ee17a017e3a7d5fb406162fdb0d6907a1959d3a
|
|
BLAKE2b-256 checksum How to use checksums |
2bfcc101a1efe2ab2c56010e623b6bcb3e94049c909cf12202c9a11579b9c5ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.18
|
Security for pic-rucio 2024.10.2.224844
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.