From 5be324921747495e8b8dc7ec1227f97cf7ef0fd4 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Tue, 23 Oct 2018 16:23:46 -0700 Subject: [PATCH] upgrades: Enable backup/restore Reviewed-by: James Valleroy --- functional_tests/features/upgrades.feature | 10 +++++++- plinth/modules/upgrades/__init__.py | 2 ++ plinth/modules/upgrades/manifest.py | 27 ++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 plinth/modules/upgrades/manifest.py diff --git a/functional_tests/features/upgrades.feature b/functional_tests/features/upgrades.feature index d0bfa9550..4c7f70c7d 100644 --- a/functional_tests/features/upgrades.feature +++ b/functional_tests/features/upgrades.feature @@ -15,7 +15,7 @@ # along with this program. If not, see . # -@essential @upgrades @system +@essential @upgrades @system @backups Feature: Software Upgrades Configure automatic software upgrades @@ -31,3 +31,11 @@ Scenario: Disable automatic upgrades Given automatic upgrades are enabled When I disable automatic upgrades Then automatic upgrades should be disabled + +Scenario: Backup and restore upgrades + When I enable automatic upgrades + And I create a backup of the upgrades app data + And I disable automatic upgrades + And I export the upgrades app data backup + And I restore the upgrades app data backup + Then automatic upgrades should be enabled diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index 5a764fb79..b5a442722 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -24,6 +24,8 @@ from plinth import service as service_module from plinth import actions from plinth.menu import main_menu +from .manifest import backup + version = 1 is_essential = True diff --git a/plinth/modules/upgrades/manifest.py b/plinth/modules/upgrades/manifest.py new file mode 100644 index 000000000..f3fe5eb46 --- /dev/null +++ b/plinth/modules/upgrades/manifest.py @@ -0,0 +1,27 @@ +# +# 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 upgrades. +""" + +from plinth.modules.backups.api import validate as validate_backup + +backup = validate_backup({ + 'config': { + 'files': ['/etc/apt/apt.conf.d/20auto-upgrades'] + } +})