Giter VIP home page Giter VIP logo

xrootd-tpc-utils's Introduction

xrootd-tpc-utils

System tests to test viability of xrootd third-party copy between endpoints.

There are two types of test:

(a) "Full Mesh":   A data file is uploaded to each endpoint, and
                   then transferred both ways between endpoint pairs.

(b) "Smoke":       An endpoint is selected as reference; for all other
                   endpoints, a file is uploaded, transferred to the
                   reference endpoint, transferred back, and then
                   downloaded from the endpoint.

See also the info in the xrootd_tests script by doing:

    python xrootd_tests -i

Configuration and Output

The test suite requires a .json configuration file. Some examples are given in the conf directory.

Most of the settings should be self-explanatory. For the "test-phases", "capture-streams" means that the streams from the xrootd executable will be redirected to their own log file in the indicated log directory (see under "report"). For the tpc phase, one can try with delegation, without delegation, or both.

The full-mesh version of the tests uses the upload phase to place the data file on all endpoints, and the remove phase to delete it from the endpoints.

The output from each test suite run is in the form of another .json file which records the (extended) configuration instance, plus the metadata for each task in the suite, including all out or err lines which appear to indicate errors.

The summary file is a plain text condensation of the results with some basic statistical information (percentage of successes in the case of the full mesh, number of successful hops in the smoke test), followed by a listing of the individual failures for each endpoint with the last error reported for each. See the examples directory for example output. The example.log file shows typical output from the script with the -d (debug) option.

The summary file can be emailed using the local smtp server if it exists; the 'to' takes a list of recipient addresses.

The configuration allows for automated generation of the x509 proxy (see under "gsi-settings", provided permissions for the script user are correct) and test data (see under "local-data-file") using the unix/linux 'dd' command.

Full-mesh output ranks the endpoints by their percentage of successes; the smoke test classifies them as sound (all tests passed) or problematic. The score in the smoke test is a running sum from 0 to 20 updated after each test suite run (to the config file), and reflects how reliable the endpoint is. If it passes all tests, its score is incremented by 1, up to the maximum. Failing a test decrements it by 1.


CREATING A DISTRIBUTION

The python code was written for version 2.7.

To create a distribution for standard installation, follow the instructions at:

    https://packaging.python.org/tutorials/packaging-projects/

for installing pip. Note that Python.org sites stopped supporting TLS version 1.0 and 1.1, which could cause issues if you try to update pip wheel on your platform.

In this case, a suggested solution is to upgrade pip without using pip:

    curl https://bootstrap.pypa.io/get-pip.py | python

Once pip is on your machine, do:

    cd xrootd_tests
    python setup.py sdist bdist_wheel

A local pip wheel dist is generated for local installation. To install, run:

    python -m pip install dist/xrootdtests-1.0-py2-none-any.whl

xrootd-tpc-utils's People

Contributors

alrossi avatar wyang007 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.