Loading portal/async_celery/async_manager.py +2 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ class AsyncManager: def _proc_expired(self, submission: Submission, limit, param='scheduled_for'): req_time = getattr(submission, param) if not req_time: return False schedule_time = time.normalize_time(req_time) curr = time.current_time() exp_time = limit + schedule_time Loading portal/database/queries.py +3 −4 Original line number Diff line number Diff line Loading @@ -114,15 +114,14 @@ def user_by_uco(uco: int) -> BaseQuery: return User.query.filter(User.uco == uco) def submissions_to_be_archived() -> BaseQuery: def submissions_finished() -> BaseQuery: """Returns the collection of finished submissions that are finished and the project is archived. Returns(BaseQuery): Query to get the result """ return Submission.query.join(Submission.project).filter( Submission.state == SubmissionState.FINISHED & Project.is_archived) Submission.state == SubmissionState.FINISHED) def cancelled_submissions_for_deletion(time_period: datetime.timedelta) -> BaseQuery: Loading @@ -138,7 +137,7 @@ def cancelled_submissions_for_deletion(time_period: datetime.timedelta) -> BaseQ """ delete_from = datetime.datetime.now() - time_period return Submission.query.filter( Submission.state.in_(SubmissionState.CANCELLED, SubmissionState.ABORTED) & Submission.state.in_([SubmissionState.CANCELLED, SubmissionState.ABORTED]) & Submission.created_at < delete_from) Loading portal/service/submissions.py +4 −3 Original line number Diff line number Diff line Loading @@ -243,10 +243,11 @@ class SubmissionsService(GeneralService): SubmissionsService(submission).delete() def archive_submissions(self): query_filter = queries.submissions_to_be_archived() query_filter = queries.submissions_finished().all() filtered = [submission for submission in query_filter if submission.project.is_archived] log.info(f"[ARCH] Archiving submissions " f"({query_filter}): {query_filter.all()}") for submission in query_filter.all(): f": {[s.log_name for s in filtered]}") for submission in filtered: SubmissionsService(submission).archive() def archive(self): Loading Loading
portal/async_celery/async_manager.py +2 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ class AsyncManager: def _proc_expired(self, submission: Submission, limit, param='scheduled_for'): req_time = getattr(submission, param) if not req_time: return False schedule_time = time.normalize_time(req_time) curr = time.current_time() exp_time = limit + schedule_time Loading
portal/database/queries.py +3 −4 Original line number Diff line number Diff line Loading @@ -114,15 +114,14 @@ def user_by_uco(uco: int) -> BaseQuery: return User.query.filter(User.uco == uco) def submissions_to_be_archived() -> BaseQuery: def submissions_finished() -> BaseQuery: """Returns the collection of finished submissions that are finished and the project is archived. Returns(BaseQuery): Query to get the result """ return Submission.query.join(Submission.project).filter( Submission.state == SubmissionState.FINISHED & Project.is_archived) Submission.state == SubmissionState.FINISHED) def cancelled_submissions_for_deletion(time_period: datetime.timedelta) -> BaseQuery: Loading @@ -138,7 +137,7 @@ def cancelled_submissions_for_deletion(time_period: datetime.timedelta) -> BaseQ """ delete_from = datetime.datetime.now() - time_period return Submission.query.filter( Submission.state.in_(SubmissionState.CANCELLED, SubmissionState.ABORTED) & Submission.state.in_([SubmissionState.CANCELLED, SubmissionState.ABORTED]) & Submission.created_at < delete_from) Loading
portal/service/submissions.py +4 −3 Original line number Diff line number Diff line Loading @@ -243,10 +243,11 @@ class SubmissionsService(GeneralService): SubmissionsService(submission).delete() def archive_submissions(self): query_filter = queries.submissions_to_be_archived() query_filter = queries.submissions_finished().all() filtered = [submission for submission in query_filter if submission.project.is_archived] log.info(f"[ARCH] Archiving submissions " f"({query_filter}): {query_filter.all()}") for submission in query_filter.all(): f": {[s.log_name for s in filtered]}") for submission in filtered: SubmissionsService(submission).archive() def archive(self): Loading