From b0ef84f54a85af251b9d479cbdd39a73efbefd61 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Wed, 9 Jan 2019 16:54:45 +0530 Subject: [PATCH] snapshot: Handle "Config in use" error Fixes #1132 Signed-off-by: Joseph Nuthalapati Reviewed-by: Sunil Mohan Adapa --- plinth/modules/snapshot/views.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/plinth/modules/snapshot/views.py b/plinth/modules/snapshot/views.py index 9c56170dd..0569b8b96 100644 --- a/plinth/modules/snapshot/views.py +++ b/plinth/modules/snapshot/views.py @@ -161,13 +161,23 @@ def delete_selected(request): if request.method == 'POST': if 'snapshots' in request.session: to_delete = request.session['snapshots'] - if to_delete == len(snapshots): - actions.superuser_run('snapshot', ['delete_all']) - messages.success(request, _('Deleted all snapshots')) - else: - for snapshot in to_delete: - actions.superuser_run('snapshot', ['delete', snapshot]) - messages.success(request, _('Deleted selected snapshots')) + try: + if to_delete == len(snapshots): + actions.superuser_run('snapshot', ['delete_all']) + messages.success(request, _('Deleted all snapshots')) + else: + for snapshot in to_delete: + actions.superuser_run('snapshot', ['delete', snapshot]) + messages.success(request, _('Deleted selected snapshots')) + except ActionError 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 + return redirect(reverse('snapshot:manage')) if 'snapshots' in request.session: