1 # This task finds containers that have been finished for at least as long as
2 # the duration specified in the `clean_container_log_rows_after` config setting,
3 # and deletes their stdout, stderr, arv-mount, crunch-run, and crunchstat logs
7 desc "Remove old container log entries from the logs table"
9 task delete_old_container_logs: :environment do
10 delete_sql = "DELETE FROM logs WHERE id in (SELECT logs.id FROM logs JOIN containers ON logs.object_uuid = containers.uuid WHERE event_type IN ('stdout', 'stderr', 'arv-mount', 'crunch-run', 'crunchstat') AND containers.log IS NOT NULL AND containers.finished_at < '#{Rails.configuration.clean_container_log_rows_after.ago}')"
12 ActiveRecord::Base.connection.execute(delete_sql)