Пример #1
0
 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)
Пример #2
0
    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))