@@ -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