Skip to main content

Package for retrieving and calculating checksums for XRootD

Project description

xrdsum

XrootD plugin for calculating checksums and storing them in extended attributes. Currently supports ADLER32 checksum and HDFS as backend. Borrows heavily from cephsum plugin.

This plugin is designed to easily accommodate new checksum types and backends. Additional dependencies for backends are defined as optional dependencies for the package (see usage instructions).

Actions Status Documentation Status Code style: black

PyPI version PyPI platforms

GitHub Discussion Gitter

Usage

xrdsum requires Python version >=3.8. To install, run:

pip install xrdsum[hdfs]
xrdsum --help
Usage: xrdsum [OPTIONS] COMMAND [ARGS]...

  Callback to give the --verbose and --debug options to all commands

Options:
  -v, --verbose         Verbose output
  -d, --debug           Debug output
  -l, --log-file TEXT   Log file
  --install-completion  Install completion for the current shell.
  --show-completion     Show completion for the current shell, to copy it or
                        customize the installation.
  --help                Show this message and exit.

Commands:
  get     Get the checksum of a file.
  verify  Check if a file has the correct checksum.

Example:

/usr/bin/time -v xrdsum --verbose  --debug get  /xrootd/dteam/user/jwalder/file_1GB_020 --read-size 128

xrootd config

# ensure cksum adler32 is included in the tpc directive, in order to caclulate by default on transfer
ofs.tpc cksum adler32 fcreds ?gsi =X509_USER_PROXY autorm xfr 40 pgm /etc/xrootd/xrdcp-tpc.sh

# add this line to trigger external checksum calculation. Would be overwritten by other xrootd.chksum lines
xrootd.chksum max 50 adler32 /etc/xrootd/xrdsum.sh

with /etc/xrootd/xrdcp-tpc.sh containing:

#!/bin/sh

# from https://github.com/snafus/cephsum/blob/master/scripts/xrdcp-tpc.sh
#Original code
#/usr/bin/xrdcp --server -f $1 root://$XRDXROOTD_PROXY/$2

# Get the last two variables as SRC and DST, all others are assumed as additional arguments
OTHERARGS="${@:1:$#-2}"
DSTFILE="${@:$#:1}"
SRCFILE="${@:$#-1:1}"


/usr/bin/xrdcp $OTHERARGS --server -f $SRCFILE root://$XRDXROOTD_PROXY/$DSTFILE

and with /etc/xrootd/xrdsum.sh containing:

#!/usr/bin/env bash

RESULT=$(xrdsum get --store-result --chunk-size 64 --verbose --storage-catalog /etc/xrootd/storage.xml "$1")
ECODE=$?

# XRootD expects return on stdout - checksum followed by a new line
printf "%s\n" "$RESULT"
exit "$ECODE"

Conda installation example

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p /miniconda
rm -f Miniconda3-latest-Linux-x86_64.sh
export PATH="/miniconda/bin:$PATH"
conda init
conda update -y conda
conda install python=3.10
pip install xrdsum[hdfs]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xrdsum-0.2.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

xrdsum-0.2.2-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file xrdsum-0.2.2.tar.gz.

File metadata

  • Download URL: xrdsum-0.2.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for xrdsum-0.2.2.tar.gz
Algorithm Hash digest
SHA256 41514e7f0f56b4435388913a985faf259cf7f9464d5650a9724cc42aa54f5987
MD5 fee3048e41888f99e7609885e736ee43
BLAKE2b-256 b9d0a0004332e048974e66517df1d11a4aaedb8a27caa5ca3f57fd068dc14081

See more details on using hashes here.

File details

Details for the file xrdsum-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: xrdsum-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for xrdsum-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 68274ec39219078553e6371396af2184de3c53d824dd5bbc4dbc2074291a66df
MD5 63eddeb62d3d5e4ca7d079a163bcdf15
BLAKE2b-256 f06e06176e860ed1b3fbd4b13c11e6be54f562a0cee10e45d9734113b2bf809b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page