Fixes: #18241 - Script results log_threshold should default to Default (#18501)

* Changed LogLevelChoices order; Changed ScriptResultView to select LogLevelChoices to LOG_DEFAULT and setup the html template to put (All) in the last one

* Change LogLevelChoices in ScriptResultView get_table method

* Remove default option, add Default string to INFO

* Fix scripts.py and reports.py to reflect removing DEFAULT level

* fix linting
This commit is contained in:
Renato Almeida de Oliveira 2025-02-06 18:30:25 -03:00 committed by GitHub
parent 8e91db0394
commit efa939d0c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 14 additions and 17 deletions

View File

@ -155,7 +155,6 @@ class JournalEntryKindChoices(ChoiceSet):
class LogLevelChoices(ChoiceSet): class LogLevelChoices(ChoiceSet):
LOG_DEBUG = 'debug' LOG_DEBUG = 'debug'
LOG_DEFAULT = 'default'
LOG_INFO = 'info' LOG_INFO = 'info'
LOG_SUCCESS = 'success' LOG_SUCCESS = 'success'
LOG_WARNING = 'warning' LOG_WARNING = 'warning'
@ -163,16 +162,15 @@ class LogLevelChoices(ChoiceSet):
CHOICES = ( CHOICES = (
(LOG_DEBUG, _('Debug'), 'teal'), (LOG_DEBUG, _('Debug'), 'teal'),
(LOG_DEFAULT, _('Default'), 'gray'),
(LOG_INFO, _('Info'), 'cyan'), (LOG_INFO, _('Info'), 'cyan'),
(LOG_SUCCESS, _('Success'), 'green'), (LOG_SUCCESS, _('Success'), 'green'),
(LOG_WARNING, _('Warning'), 'yellow'), (LOG_WARNING, _('Warning'), 'yellow'),
(LOG_FAILURE, _('Failure'), 'red'), (LOG_FAILURE, _('Failure'), 'red'),
) )
SYSTEM_LEVELS = { SYSTEM_LEVELS = {
LOG_DEBUG: logging.DEBUG, LOG_DEBUG: logging.DEBUG,
LOG_DEFAULT: logging.INFO,
LOG_INFO: logging.INFO, LOG_INFO: logging.INFO,
LOG_SUCCESS: logging.INFO, LOG_SUCCESS: logging.INFO,
LOG_WARNING: logging.WARNING, LOG_WARNING: logging.WARNING,

View File

@ -138,9 +138,8 @@ DEFAULT_DASHBOARD = [
LOG_LEVEL_RANK = { LOG_LEVEL_RANK = {
LogLevelChoices.LOG_DEBUG: 0, LogLevelChoices.LOG_DEBUG: 0,
LogLevelChoices.LOG_DEFAULT: 1, LogLevelChoices.LOG_INFO: 1,
LogLevelChoices.LOG_INFO: 2, LogLevelChoices.LOG_SUCCESS: 2,
LogLevelChoices.LOG_SUCCESS: 3, LogLevelChoices.LOG_WARNING: 3,
LogLevelChoices.LOG_WARNING: 4, LogLevelChoices.LOG_FAILURE: 4,
LogLevelChoices.LOG_FAILURE: 5,
} }

View File

@ -15,7 +15,7 @@ class Report(BaseScript):
# There is no generic log() equivalent on BaseScript # There is no generic log() equivalent on BaseScript
def log(self, message): def log(self, message):
self._log(message, None, level=LogLevelChoices.LOG_DEFAULT) self._log(message, None, level=LogLevelChoices.LOG_INFO)
def log_success(self, obj=None, message=None): def log_success(self, obj=None, message=None):
super().log_success(message, obj) super().log_success(message, obj)

View File

@ -460,7 +460,7 @@ class BaseScript:
# Logging # Logging
# #
def _log(self, message, obj=None, level=LogLevelChoices.LOG_DEFAULT): def _log(self, message, obj=None, level=LogLevelChoices.LOG_INFO):
""" """
Log a message. Do not call this method directly; use one of the log_* wrappers below. Log a message. Do not call this method directly; use one of the log_* wrappers below.
""" """

View File

@ -1315,9 +1315,9 @@ class ScriptResultView(TableMixin, generic.ObjectView):
index = 0 index = 0
try: try:
log_threshold = LOG_LEVEL_RANK[request.GET.get('log_threshold', LogLevelChoices.LOG_DEBUG)] log_threshold = LOG_LEVEL_RANK[request.GET.get('log_threshold', LogLevelChoices.LOG_INFO)]
except KeyError: except KeyError:
log_threshold = LOG_LEVEL_RANK[LogLevelChoices.LOG_DEBUG] log_threshold = LOG_LEVEL_RANK[LogLevelChoices.LOG_INFO]
if job.data: if job.data:
if 'log' in job.data: if 'log' in job.data:
@ -1325,7 +1325,7 @@ class ScriptResultView(TableMixin, generic.ObjectView):
tests = job.data['tests'] tests = job.data['tests']
for log in job.data['log']: for log in job.data['log']:
log_level = LOG_LEVEL_RANK.get(log.get('status'), LogLevelChoices.LOG_DEFAULT) log_level = LOG_LEVEL_RANK.get(log.get('status'), LogLevelChoices.LOG_INFO)
if log_level >= log_threshold: if log_level >= log_threshold:
index += 1 index += 1
result = { result = {
@ -1348,7 +1348,7 @@ class ScriptResultView(TableMixin, generic.ObjectView):
for method, test_data in tests.items(): for method, test_data in tests.items():
if 'log' in test_data: if 'log' in test_data:
for time, status, obj, url, message in test_data['log']: for time, status, obj, url, message in test_data['log']:
log_level = LOG_LEVEL_RANK.get(status, LogLevelChoices.LOG_DEFAULT) log_level = LOG_LEVEL_RANK.get(status, LogLevelChoices.LOG_INFO)
if log_level >= log_threshold: if log_level >= log_threshold:
index += 1 index += 1
result = { result = {
@ -1374,9 +1374,9 @@ class ScriptResultView(TableMixin, generic.ObjectView):
if job.completed: if job.completed:
table = self.get_table(job, request, bulk_actions=False) table = self.get_table(job, request, bulk_actions=False)
log_threshold = request.GET.get('log_threshold', LogLevelChoices.LOG_DEBUG) log_threshold = request.GET.get('log_threshold', LogLevelChoices.LOG_INFO)
if log_threshold not in LOG_LEVEL_RANK: if log_threshold not in LOG_LEVEL_RANK:
log_threshold = LogLevelChoices.LOG_DEBUG log_threshold = LogLevelChoices.LOG_INFO
context = { context = {
'script': job.object, 'script': job.object,

View File

@ -53,7 +53,7 @@
<div class="dropdown-menu"> <div class="dropdown-menu">
{% for level, name in log_levels.items %} {% for level, name in log_levels.items %}
<a class="dropdown-item d-flex justify-content-between" href="{% url 'extras:script_result' job_pk=job.pk %}?log_threshold={{ level }}"> <a class="dropdown-item d-flex justify-content-between" href="{% url 'extras:script_result' job_pk=job.pk %}?log_threshold={{ level }}">
{{ name }}{% if forloop.first %} ({% trans "All" %}){% endif %} {{ name }}{% if forloop.counter == 1 %} ({% trans "All" %}){% elif forloop.counter == 2 %} ({% trans "Default" %}){% endif %}
{% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %} {% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %}
</a> </a>
{% endfor %} {% endfor %}