diff --git a/authentik/lib/sync/outgoing/tasks.py b/authentik/lib/sync/outgoing/tasks.py index d84705bd30..735891806a 100644 --- a/authentik/lib/sync/outgoing/tasks.py +++ b/authentik/lib/sync/outgoing/tasks.py @@ -1,4 +1,5 @@ from collections.abc import Callable +from dataclasses import asdict from celery.exceptions import Retry from celery.result import allow_join_result @@ -81,7 +82,7 @@ class SyncTasks: time_limit=PAGE_TIMEOUT, soft_time_limit=PAGE_TIMEOUT, ).get(): - messages.append(msg) + messages.append(LogEvent(**msg)) for page in groups_paginator.page_range: messages.append(_("Syncing page %(page)d of groups" % {"page": page})) for msg in sync_objects.apply_async( @@ -89,7 +90,7 @@ class SyncTasks: time_limit=PAGE_TIMEOUT, soft_time_limit=PAGE_TIMEOUT, ).get(): - messages.append(msg) + messages.append(LogEvent(**msg)) except TransientSyncException as exc: self.logger.warning("transient sync exception", exc=exc) raise task.retry(exc=exc) from exc @@ -130,57 +131,63 @@ class SyncTasks: except BadRequestSyncException as exc: self.logger.warning("failed to sync object", exc=exc, obj=obj) messages.append( - LogEvent( - _( - ( - "Failed to sync {object_type} {object_name} " - "due to error: {error}" - ).format_map( - { - "object_type": obj._meta.verbose_name, - "object_name": str(obj), - "error": str(exc), - } - ) - ), - log_level="warning", - logger="", - attributes={"arguments": exc.args[1:]}, + asdict( + LogEvent( + _( + ( + "Failed to sync {object_type} {object_name} " + "due to error: {error}" + ).format_map( + { + "object_type": obj._meta.verbose_name, + "object_name": str(obj), + "error": str(exc), + } + ) + ), + log_level="warning", + logger="", + attributes={"arguments": exc.args[1:]}, + ) ) ) except TransientSyncException as exc: self.logger.warning("failed to sync object", exc=exc, user=obj) messages.append( - LogEvent( - _( - ( - "Failed to sync {object_type} {object_name} " - "due to transient error: {error}" - ).format_map( - { - "object_type": obj._meta.verbose_name, - "object_name": str(obj), - "error": str(exc), - } - ) - ), - log_level="warning", - logger="", + asdict( + LogEvent( + _( + ( + "Failed to sync {object_type} {object_name} " + "due to transient error: {error}" + ).format_map( + { + "object_type": obj._meta.verbose_name, + "object_name": str(obj), + "error": str(exc), + } + ) + ), + log_level="warning", + logger="", + ) ) ) except StopSync as exc: self.logger.warning("Stopping sync", exc=exc) messages.append( - LogEvent( - _( - "Stopping sync due to error: {error}".format_map( - { - "error": exc.detail(), - } - ) - ), - log_level="warning", - logger="", + asdict( + LogEvent( + _( + "Stopping sync due to error: {error}".format_map( + { + "error": exc.detail(), + } + ) + ), + log_level="warning", + logger="", + ) ) ) break