1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
Usage in ROOT
=============
We have also created a davix plugin for ROOT_, TDavixFile. It can be used to perform I/O on HTTP, WebDAV or S3.
.. _ROOT: https://root.cern.ch/
Installation from EPEL repositories
-----------------------------------
#. Install root and root-davix ::
$ sudo yum install root root-net-davix
#. Enable the davix plugin by default ::
$ sudo sed -i 's/Davix.UseOldClient: yes/Davix.UseOldClient: no/g' /usr/share/root/system.rootrc
#. Tune configuration of rootrc with your HTTP parameters. See the available options in :ref:`configureTDavix`. ::
$ vim /usr/share/root/system.rootrc
Installation from source
------------------------
#. Download your favorite version of ROOT from https://root.cern.ch
#. Install the dependencies: cmake, openssl-devel, libxml2-devel
#. Run ``installDavix.sh`` which downloads and compiles davix.
#. Configure ROOT with ``--with-davix-incdir`` and ``--with-davix-libdir`` indicating the davix installation created by ``installDavix.sh``. Davix should be displayed in the list of "enabled modules" at the end of the configuration step.
#. Compile ROOT.
Usage
-----
Using Davix is completely transparent once installed and configured, just proceed like with any other TFile plugin. ::
TFile* f = TFile::Open("http://root.cern.ch/files/h1big.root")
Debugging
---------
* To use ROOT's logging, increase the gDebug variable level. ::
$ gDebug = 2
* To use Davix's internal logging, use the Davix.Debug parameter. It can be used independently of gDebug. To display only Davix's logging infomation, set gDebug to 0 and Davix.Debug to 1-4, with 4 being most verbose. In code: ::
$ gEnv->SetValue("Davix.Debug", 4);
* In system.rootrc: ::
$ Davix.Debug: 4
.. _configureTDavix:
Configure TDavixFile
--------------------
TDavixFile can be configured via the **system.rootrc** file, via **ROOT environment variables** or via **TFile::Open flags** at runtime. All configuration parameters are documented inside system.rootrc. Main options:
+-------------------------------------------------------------+------------------------+----------------------+
| Feature | ROOT parameter | Value |
+=============================================================+========================+======================+
| Enable/disable grid authentication support | Davix.GSI.GridMode | y/n |
+-------------------------------------------------------------+------------------------+----------------------+
| Enable/disable TLS certificate validity check | Davix.GSI.CACheck | y/n |
+-------------------------------------------------------------+------------------------+----------------------+
| Specify S3 authentication tokens | Davix.S3.SecretKey | string |
+ +------------------------+----------------------+
| | Davix.S3.AccessKey | string |
+-------------------------------------------------------------+------------------------+----------------------+
| Specify user x509 credentials in PEM format | Davix.GSI.UserCert | filepath (string) |
+ +------------------------+----------------------+
| | Davix.GSI.UserKey | filepath (string) |
+-------------------------------------------------------------+------------------------+----------------------+
| Specify VOMS proxy to use | Davix.GSI.UserProxy | filepath (string) |
+-------------------------------------------------------------+------------------------+----------------------+
| Define log verbosity | Davix.Debug | integer (1-4) |
+-------------------------------------------------------------+------------------------+----------------------+
Running HTTP ROOT TDavixFile Benchmarks
---------------------------------------
Check this repository: https://github.com/cern-it-sdc-id/tdavixfile-bench-tools.git
|