Skip to main content

rucio-undertaker

usage: rucio-undertaker [-h] [--run-once] [--total-workers TOTAL_WORKERS]
[--chunk-size CHUNK_SIZE] [--sleep-time SLEEP_TIME]

The Undertaker daemon is responsible for managing expired DIDs. It deletes DIDs, but not replicas by checking if there are DIDs where the 'expired_at' date property is older than the current timestamp.

optional arguments:
-h, --help show this help message and exit
--run-once One iteration only
--total-workers TOTAL_WORKERS
Total number of workers
--chunk-size CHUNK_SIZE
Chunk size
--sleep-time SLEEP_TIME
Concurrency control: thread sleep time after each
chunk of work

Create a DID that is already expired by setting its lifetime to -1::

$ python
from rucio.db.sqla.constants import DIDType
from rucio.client.didclient import DIDClient
client = DIDClient()
client.add_did(scope='mock', name='test', type=DIDType.DATASET, lifetime=-1)

Check if the DID exists::

$ rucio list-dids mock:test
+--------------+--------------+
| SCOPE:NAME | [DID TYPE] |
|--------------+--------------|
| mock:test | DATASET |
+--------------+--------------+

Run the daemon::

$ rucio-undertaker --run-once

Check if the DID exists::

$ rucio list-dids mock:test
+--------------+--------------+
| SCOPE:NAME | [DID TYPE] |
|--------------+--------------|
+--------------+--------------+