def run(self) -> None: with session_scope(nullpool=True) as session: self.validate() for report_schedule in session.query(ReportSchedule).all(): from_date = datetime.utcnow() - timedelta( days=report_schedule.log_retention) ReportScheduleDAO.bulk_delete_logs(report_schedule, from_date, session=session, commit=False)
def run(self) -> None: with session_scope(nullpool=True) as session: self.validate() prune_errors = [] for report_schedule in session.query(ReportSchedule).all(): if report_schedule.log_retention is not None: from_date = datetime.utcnow() - timedelta( days=report_schedule.log_retention ) try: row_count = ReportScheduleDAO.bulk_delete_logs( report_schedule, from_date, session=session, commit=False ) logger.info( "Deleted %s logs for report schedule id: %s", str(row_count), str(report_schedule.id), ) except DAODeleteFailedError as ex: prune_errors.append(str(ex)) if prune_errors: raise ReportSchedulePruneLogError(";".join(prune_errors))