refactor integration error logging into helper

This commit is contained in:
Matthias 2021-11-20 03:35:43 +01:00
parent ebe712312c
commit 9087cabe5f
No known key found for this signature in database
GPG Key ID: F50EF5741D33E076
2 changed files with 14 additions and 7 deletions

View File

@ -14,6 +14,7 @@ from wsgiref.util import FileWrapper
from django.http import StreamingHttpResponse
from django.core.exceptions import ValidationError, FieldError
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
from django.contrib.auth.models import Permission
@ -696,3 +697,11 @@ def clean_decimal(number):
return Decimal(0)
return clean_number.quantize(Decimal(1)) if clean_number == clean_number.to_integral() else clean_number.normalize()
def log_plugin_error(error, reference: str = 'general'):
# make sure the registry is set up
if reference not in settings.INTEGRATION_ERRORS:
settings.INTEGRATION_ERRORS[reference] = []
# add error to stack
settings.INTEGRATION_ERRORS[reference].append(error)

View File

@ -9,6 +9,8 @@ import logging
from django.conf import settings
from django.core.exceptions import AppRegistryNotReady
from InvenTree.helpers import log_plugin_error
# Action plugins
import plugin.builtin.action as action
from plugin.action import ActionPlugin
@ -43,14 +45,10 @@ def get_modules(pkg, recursive: bool = False):
pass
except Exception as error:
# this 'protects' against malformed plugin modules by more or less silently failing
# TODO log
# TODO log to logging
# make sure the registry is set up
if 'discovery' not in settings.INTEGRATION_ERRORS:
settings.INTEGRATION_ERRORS['discovery'] = []
# add error to stack
settings.INTEGRATION_ERRORS['discovery'].append({name: str(error)})
# log to stack
log_plugin_error({name: str(error)}, 'discovery')
return [v for k, v in context.items()]