From 8279690a8f8a65308ee0965c5eab8bb7bb8bd5ee Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Fri, 17 Sep 2021 16:49:10 +0200 Subject: [PATCH] sources/ldap: prevent error when retrying old system task with no arguments Signed-off-by: Jens Langhammer --- authentik/sources/ldap/tasks.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/authentik/sources/ldap/tasks.py b/authentik/sources/ldap/tasks.py index 55a257c9e..9566f8322 100644 --- a/authentik/sources/ldap/tasks.py +++ b/authentik/sources/ldap/tasks.py @@ -1,4 +1,6 @@ """LDAP Sync tasks""" +from typing import Optional + from django.utils.text import slugify from ldap3.core.exceptions import LDAPException from structlog.stdlib import get_logger @@ -29,7 +31,8 @@ def ldap_sync_all(): @CELERY_APP.task( bind=True, base=MonitoredTask, soft_time_limit=60 * 60 * 2, task_time_limit=60 * 60 * 2 ) -def ldap_sync(self: MonitoredTask, source_pk: str, sync_class: str): +# TODO: remove Optional[str] in 2021.10 +def ldap_sync(self: MonitoredTask, source_pk: str, sync_class: Optional[str] = None): """Synchronization of an LDAP Source""" self.result_timeout_hours = 2 try: @@ -38,6 +41,8 @@ def ldap_sync(self: MonitoredTask, source_pk: str, sync_class: str): # Because the source couldn't be found, we don't have a UID # to set the state with return + if not sync_class: + return sync = path_to_class(sync_class) self.set_uid(f"{slugify(source.name)}-{sync.__name__}") try: