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 <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Sunil Mohan Adapa 2024-03-18 14:43:34 -07:00 committed by James Valleroy
parent f240c4203c
commit 601b48d5b1
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808

View File

@ -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'))