From 601b48d5b1badb8ee66c13d27f78b4b4c3118fe9 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 18 Mar 2024 14:43:34 -0700 Subject: [PATCH] snapshot: Show better error messages - Simplify success message for easy localization. Tests: - Update configuration notice the success message is shown properly. - Insert errors in set_config() privileged method and notice that HTML error is shown properly. - Insert errors in privileged.delete() method, print 'Config is in use.' message on stderr and notice that HTML error is shown properly. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/snapshot/views.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/plinth/modules/snapshot/views.py b/plinth/modules/snapshot/views.py index 8fc4c5b6c..55581c5a0 100644 --- a/plinth/modules/snapshot/views.py +++ b/plinth/modules/snapshot/views.py @@ -14,7 +14,7 @@ from django.utils.translation import gettext_lazy from plinth import app as app_module from plinth.modules import snapshot as snapshot_module from plinth.modules import storage -from plinth.views import AppView +from plinth.views import AppView, messages_error from . import get_configuration, privileged from .forms import SnapshotForm @@ -155,13 +155,9 @@ def update_configuration(request, old_status, new_status): try: privileged.set_config(list(config)) - messages.success(request, _('Storage snapshots configuration updated')) + messages.success(request, _('Configuration updated.')) except Exception as exception: - messages.error( - request, - _('Action error: {0} [{1}] [{2}]').format(exception.args[0], - exception.args[1], - exception.args[2])) + messages_error(request, _('Configuration update failed.'), exception) def delete_selected(request): @@ -187,13 +183,13 @@ def delete_selected(request): messages.success(request, _('Deleted selected snapshots')) except Exception as exception: - if 'Config is in use.' in exception.args[2]: - messages.error( - request, - _('Snapshot is currently in use. ' - 'Please try again later.')) - else: - raise + message = _('Deleting snapshot failed.') + stderr = getattr(exception, 'stderr', b'').decode() + if 'Config is in use.' in stderr: + message = _('Snapshot is currently in use. ' + 'Please try again later.') + + messages_error(request, message, exception) return redirect(reverse('snapshot:manage'))