From f8b9d9d291f9c4487e4462902a2c7ee72feaf6b8 Mon Sep 17 00:00:00 2001 From: Jakub Kadlčík Date: Apr 23 2019 11:27:18 +0000 Subject: [backend] clean data for failed builds; fix #619 --- diff --git a/backend/run/copr_prune_results.py b/backend/run/copr_prune_results.py index 6ccf85e..b5a5dcb 100755 --- a/backend/run/copr_prune_results.py +++ b/backend/run/copr_prune_results.py @@ -180,7 +180,7 @@ class Pruner(object): def clean_copr(path, days=DEF_DAYS, verbose=True): """ - Remove whole copr build dirs if they no longer contain a srpm/rpm file + Remove whole copr build dirs if they no longer contain a RPM file """ loginfo("Cleaning COPR repository...") for dir_name in os.listdir(path): @@ -190,7 +190,7 @@ def clean_copr(path, days=DEF_DAYS, verbose=True): continue if not os.path.isfile(os.path.join(dir_path, 'build.info')): continue - if [item for item in os.listdir(dir_path) if item.endswith(".rpm")]: + if is_rpm_in_dir(dir_path): continue if time.time() - os.stat(dir_path).st_mtime <= days * 24 * 3600: continue @@ -216,6 +216,12 @@ def rm_file(path, verbose=True): os.remove(path) +def is_rpm_in_dir(path): + files = os.listdir(path) + srpm_ex = (".src.rpm", ".nosrc.rpm") + return any([f for f in files if f.endswith(".rpm") and not f.endswith(srpm_ex)]) + + def main(): args = parser.parse_args() config_file = os.environ.get("BACKEND_CONFIG", "/etc/copr/copr-be.conf")