Skip to content

Commit c00b6e0

Browse files
authored
Add option to print extra details about the Versions during deletion (#2498)
1 parent 6e4bba4 commit c00b6e0

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

Framework/script/RepoCleaner/qcrepocleaner/Ccdb.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class ObjectVersion:
1717
In the CCDB an object can have many versions with different validity intervals.
1818
This class represents a single version.
1919
"""
20+
print_details = False
2021

2122
def __init__(self, path: str, valid_from, valid_to, created_at, uuid=None, metadata=None):
2223
"""
@@ -26,7 +27,9 @@ def __init__(self, path: str, valid_from, valid_to, created_at, uuid=None, metad
2627
:param valid_from: validity range smaller limit (in ms)
2728
:param valid_to: validity range bigger limit (in ms)
2829
:param created_at: creation timestamp of the object
30+
:param metadata: metadata of the object
2931
"""
32+
3033
self.path = path
3134
self.uuid = uuid
3235
self.valid_from = valid_from
@@ -41,10 +44,13 @@ def __init__(self, path: str, valid_from, valid_to, created_at, uuid=None, metad
4144
def __repr__(self):
4245
if "Run" in self.metadata or "RunNumber" in self.metadata:
4346
run_number = self.metadata["Run"] if "Run" in self.metadata else self.metadata["RunNumber"]
44-
return f"Version of object {self.path} created at {self.created_at_as_dt.strftime('%Y-%m-%d %H:%M:%S')}, valid from {self.valid_from_as_dt.strftime('%Y-%m-%d %H:%M:%S')}, run {run_number} (uuid {self.uuid})"
4547
else:
46-
return f"Version of object {self.path} created at {self.created_at_as_dt.strftime('%Y-%m-%d %H:%M:%S')}, valid from {self.valid_from_as_dt.strftime('%Y-%m-%d %H:%M:%S')} (uuid {self.uuid}, " \
47-
f"ts {self.valid_from})"
48+
run_number = "None"
49+
50+
rperesentation = f"Version of object {self.path} created at {self.created_at_as_dt.strftime('%Y-%m-%d %H:%M:%S')}, valid from {self.valid_from_as_dt.strftime('%Y-%m-%d %H:%M:%S')}, run {run_number}, (uuid {self.uuid})"
51+
if ObjectVersion.print_details:
52+
representation += f", metadata: {self.metadata}"
53+
return representation
4854

4955

5056
class Ccdb:
@@ -57,9 +63,10 @@ class Ccdb:
5763
counter_preserved: int = 0
5864
set_adjustable_eov: bool = False # if True, set the metadata adjustableEOV before change validity
5965

60-
def __init__(self, url):
66+
def __init__(self, url, print_details=False):
6167
logger.info(f"Instantiate CCDB at {url}")
6268
self.url = url
69+
ObjectVersion.print_details = print_details
6370

6471
def get_objects_list(self, added_since: int = 0, path: str = "", no_wildcard: bool = False) -> List[str]:
6572
"""

Framework/script/RepoCleaner/qcrepocleaner/o2-qc-repo-cleaner

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ def parse_args():
104104
'only-path points to an object rather than a folder or if subdirectories must be ignored.')
105105
parser.add_argument('--ignore-last-execution', dest='ignore_last_execution', action='store_true', default=False,
106106
help='Do not check when was the last execution, run from timestamp 0.')
107+
parser.add_argument('--print-versions-details', dest='print_versions_details', action='store_true', default=False,
108+
help='Print extra details about the versions if enabled..')
107109
args = parser.parse_args()
108110
dryable.set(args.dry_run)
109111
logging.info(args)
@@ -376,7 +378,7 @@ def process_object(object_path, rules, ccdb, args):
376378
def run(args, ccdb_url, rules):
377379

378380
# Get list of objects from CCDB
379-
ccdb = Ccdb(ccdb_url)
381+
ccdb = Ccdb(ccdb_url, args.print_versions_details)
380382
ccdb.logger = logging.getLogger
381383
ccdb.set_adjustable_eov = args.set_adjustableEOV
382384
logging.info(f"ccdb.set_adjustable_eov: {ccdb.set_adjustable_eov}")

Framework/script/RepoCleaner/qcrepocleaner/o2-qc-repo-delete-objects-in-runs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,16 @@ def parseArgs():
3131
parser.add_argument('--yes', action='store_true', help='Answers yes to all. You should really not use that.')
3232
parser.add_argument('--metadata', dest='metadata', action='store', default="",
3333
help='Delete only versions matching these metadata. Format: "[/key=value]*"')
34+
parser.add_argument('--print-versions-details', dest='print_versions_details', action='store_true', default=False,
35+
help='Print extra details about the versions if enabled..')
3436
args = parser.parse_args()
3537
dryable.set(args.dry_run)
3638
logging.info(args)
3739
return args
3840

3941

4042
def run(args):
41-
ccdb = Ccdb(args.url)
43+
ccdb = Ccdb(args.url, args.print_versions_details)
4244

4345
total_deleted = 0
4446
total_planned = 0

0 commit comments

Comments
 (0)