Skip to content

Commit fe7761f

Browse files
mdellwegggainey
authored andcommitted
Fix scheduled purge tasks to handle all domains
fixes #6815
1 parent 5f794a1 commit fe7761f

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

CHANGES/6815.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
When running as a recurring scheduled task, purge will now clean stale task records accross all domains.

pulpcore/app/tasks/purge.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,17 +82,20 @@ def purge(finished_before=None, states=None, **kwargs):
8282
states (Optional[List[str]]): List of task-states we want to purge.
8383
8484
"""
85+
scheduled = current_task.get().taskschedule_set.exists()
86+
8587
if finished_before is None:
8688
assert settings.TASK_PROTECTION_TIME > 0
8789
finished_before = timezone.now() - timezone.timedelta(minutes=settings.TASK_PROTECTION_TIME)
8890
if states is None:
8991
states = TASK_FINAL_STATES
90-
domain = get_domain()
92+
9193
# Tasks, prior to the specified date, in the specified state, owned by the current-user, in the
9294
# current domain
93-
candidate_qs = Task.objects.filter(
94-
finished_at__lt=finished_before, state__in=states, pulp_domain=domain
95-
)
95+
candidate_qs = Task.objects.filter(finished_at__lt=finished_before, state__in=states)
96+
97+
if not scheduled:
98+
candidate_qs = candidate_qs.filter(pulp_domain=get_domain())
9699
if "user_pk" in kwargs:
97100
if (user_pk := kwargs["user_pk"]) is not None:
98101
current_user = User.objects.get(pk=user_pk)
@@ -101,7 +104,7 @@ def purge(finished_before=None, states=None, **kwargs):
101104
# This is the old task signature (<= 3.74) without "user_pk".
102105
# Has this task not been dispatched from a task schedule? Then we assume there was a user
103106
# doing that.
104-
if not current_task.get().taskschedule_set.exists():
107+
if not scheduled:
105108
current_user = get_current_authenticated_user()
106109
if current_user is None:
107110
raise RuntimeError(

0 commit comments

Comments
 (0)