From 3ec55ddecddf29f275c3129d823da19cbbd07c23 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Thu, 4 Oct 2018 17:50:10 -0700 Subject: [PATCH] sharing: Enable backup/restore Reviewed-by: James Valleroy --- functional_tests/features/sharing.feature | 10 +++++++ plinth/modules/sharing/__init__.py | 2 ++ plinth/modules/sharing/manifest.py | 32 +++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 plinth/modules/sharing/manifest.py diff --git a/functional_tests/features/sharing.feature b/functional_tests/features/sharing.feature index a24a81ae9..2639bc079 100644 --- a/functional_tests/features/sharing.feature +++ b/functional_tests/features/sharing.feature @@ -50,3 +50,13 @@ Scenario: Share permissions And I add a share tmp from path /tmp for syncthing Then the share tmp should be listed from path /tmp for syncthing And the share tmp should not be accessible + +Scenario: Backup and restore sharing + Given share tmp is not available + When I add a share tmp from path /tmp for admin + And I create a backup of the sharing app data + And I remove share tmp + And I export the sharing app data backup + And I restore the sharing app data backup + Then the share tmp should be listed from path /tmp for admin + And the share tmp should be accessible diff --git a/plinth/modules/sharing/__init__.py b/plinth/modules/sharing/__init__.py index 614f337c3..12b3317b2 100644 --- a/plinth/modules/sharing/__init__.py +++ b/plinth/modules/sharing/__init__.py @@ -26,6 +26,8 @@ from plinth import actions, cfg from plinth.menu import main_menu from plinth.utils import format_lazy +from .manifest import backup + version = 1 name = _('Sharing') diff --git a/plinth/modules/sharing/manifest.py b/plinth/modules/sharing/manifest.py new file mode 100644 index 000000000..47bdbf8c6 --- /dev/null +++ b/plinth/modules/sharing/manifest.py @@ -0,0 +1,32 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Application manifest for sharing. +""" + +from plinth.modules.backups.api import validate as validate_backup + +backup = validate_backup({ + 'config': { + 'files': ['/etc/apache2/conf-available/sharing-freedombox.conf'] + }, + 'services': [{ + 'type': 'apache', + 'kind': 'config', + 'name': 'sharing-freedombox' + }] +})