Set of tools to clean up the QCDB repository.
Project description
Here are the tools to clean up the CCDB of the QC.
Entry point
It is o2-qc-repo-cleaner
. See the long comment at the beginning.
Usage
usage: o2-qc-repo-cleaner [-h] [--config CONFIG] [--config-git] [--config-consul CONFIG_CONSUL] [--log-level LOG_LEVEL]
[--dry-run] [--only-path ONLY_PATH] [--workers WORKERS]
Configuration
The file config.yaml
contains the CCDB URL and the rules to be followed to clean up the database. An example is provided along this README (config.yaml
).
A typical rule in the config file looks like:
- object_path: qc/ITS/.*
delay: 240
policy: 1_per_hour
There can be any number of these rules. The order is important as we use the first matching rule for each element in the QCDB (caveat the use of the flag continue_with_next_rule
, see below).
object_path
: a pattern to be matched to know if the rule appliesdelay
: the duration in minutes of the grace period during which an object is not removed, even if it matches the above path.policy
: the name of a policy to apply on the matching objects. Here are the currently available policies (full description in the corresponding files):1_per_hour
: keep the first and extend its validity to 1 hour, remove everything in the next hour, repeat.1_per_run
: requires the "Run" or "RunNumber" metadata to be set. Keep only the most recent version of an object for a given run.last_only
: keep only the last version, remove everything else.none_kept
: keep none, remove everythingskip
: keep everything
from_timestamp
: the rule only applies to versions whosevalid_from
is older than this timestampto_timestamp
: the rule only applies to versions whosevalid_from
is younger than this timestampcontinue_with_next_rule
: ifTrue
, the next matching rule is also applied.xyz
: any extra argument necessary for a given policy. This is the case of the argumentdelete_when_no_run
required by the policy1_per_run
.
The configuration for ccdb-test is described here.
Unit Tests
cd QualityControl/Framework/script/RepoCleaner ; python3 -m unittest discover
and to test only one of them: python3 -m unittest tests/test_NewProduction.py -k test_2_runs
In particular there is a test for the production
rule that is pretty extensive. It hits the ccdb though and it needs the following path to be truncated:
qc/TST/MO/repo/test*
Other tests
Most of the classes and Rules have a main to help test them. To run do e.g. python3 1_per_run.py
.
Installation
CMake will install the python scripts in bin and the config file in etc.
Example
PYTHONPATH=./rules:$PYTHONPATH ./o2-qc-repo-cleaner --dry-run --config config-test.yaml --dry-run --only-path qc/DAQ --log-level 10
Development
To install locally
cd Framework/script/RepoCleaner
python3 -m pip install .
Upload new version
Prerequisite
- Create an account on https://pypi.org
Create new version
- Update version number in
setup.py
python3 setup.py sdist bdist_wheel
python3 -m twine upload --repository pypi dist/*
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
Built Distribution
File details
Details for the file qcrepocleaner-1.3.tar.gz
.
File metadata
- Download URL: qcrepocleaner-1.3.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e53c122760e91e386e9f879cd677d3976415294515f8f7bbdd0bde9afd2c2d5 |
|
MD5 | c8d77fea46ffc49e2b05549676c72d02 |
|
BLAKE2b-256 | 7492a0becfe256b164ba8d8b0862b9589c8f33788d5410c1009f9e97150c24ed |
File details
Details for the file qcrepocleaner-1.3-py3-none-any.whl
.
File metadata
- Download URL: qcrepocleaner-1.3-py3-none-any.whl
- Upload date:
- Size: 57.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0b72d83f2087e0c27c3965dcc16d96dda40597901b7113a1a301a35b5e72574 |
|
MD5 | a6a47d64eaa0ab7eb41316d36289a3dd |
|
BLAKE2b-256 | c6274fa02dcbde6f5a0b5f63b1747827916386735eaf07d21c92f56c65b38033 |