From 08a822dddf0ba6e969b0b501bf42d84cd38e8f65 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Tue, 29 Nov 2022 15:35:17 +0100 Subject: [PATCH] delete old scheduler log messages --- util/koji-sweep-db | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/util/koji-sweep-db b/util/koji-sweep-db index cd62346b..373bb8e3 100755 --- a/util/koji-sweep-db +++ b/util/koji-sweep-db @@ -147,6 +147,21 @@ def clean_buildroots(cursor, vacuum, test): cursor.execute("VACUUM ANALYZE buildroot") +def clean_scheduler_logs(cursor, vacuum, test, age): + clauses = f"(msg_time < NOW() - '{age:d} days'::interval)" + if options.verbose: + query = QueryProcessor(tables=["scheduler_log_messages"], + clauses=clauses, + opts={'countOnly': True}) + rows = query.execute() + print(f"Deleting {rows} scheduler log messages") + if not test: + delete = DeleteProcessor(table="scheduler_log_messages", clauses=clauses)\ + delete.execute() + if vacuum: + cursor.execute("VACUUM ANALYZE scheduler_log_messages") + + if __name__ == "__main__": global options parser = OptionParser("%prog cleans koji database") @@ -180,6 +195,9 @@ if __name__ == "__main__": parser.add_option('--scratch-builds-age', type=int, dest="scratch_age", action="store", default=730, metavar="DAYS", help="Delete scratch builds' tasks older than this (default: 2 years") + parser.add_option('--logs-age', type=int, + action="store", default=7, metavar="DAYS", + help="Delete scheduler log messages older than this (default: 7 days)") parser.add_option('--buildroots', action="store_true", help="Delete unreferenced buildroots") parser.add_option('-f', '--force', action="store_true", @@ -240,6 +258,7 @@ if __name__ == "__main__": clean_sessions(cursor, options.vacuum, options.test, options.sessions_age, options.sessions_absolute_age) clean_reservations(cursor, options.vacuum, options.test, options.reservations_age) + clean_scheduler_logs(cursor, options.vacuum, options.test, options.logs_age) if options.tag_notifications: clean_notification_tasks(cursor, options.vacuum, options.test, age=options.tag_notifications_age)