From 03e19b0bdc50c19f49eca1ab88ab6d1d7bd0dc56 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Thu, 18 Oct 2018 11:43:06 -0700 Subject: [PATCH] bind: Enable backup/restore Reviewed-by: James Valleroy --- functional_tests/features/bind.feature | 12 +++++++++++ plinth/modules/bind/__init__.py | 2 ++ plinth/modules/bind/manifest.py | 28 ++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 plinth/modules/bind/manifest.py diff --git a/functional_tests/features/bind.feature b/functional_tests/features/bind.feature index fc958eec5..9ced2115a 100644 --- a/functional_tests/features/bind.feature +++ b/functional_tests/features/bind.feature @@ -50,3 +50,15 @@ Scenario: Disable bind DNSSEC And bind DNSSEC is disabled When I disable bind DNSSEC Then bind DNSSEC should be disabled + +Scenario: Backup and restore bind + Given the bind application is enabled + When I set bind forwarders to 1.1.1.1 + And I disable bind DNSSEC + And I create a backup of the bind app data + And I set bind forwarders to 1.0.0.1 + And I enable bind DNSSEC + And I export the bind app data backup + And I restore the bind app data backup + Then bind forwarders should be 1.1.1.1 + And bind DNSSEC should be disabled diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py index 3a4386e82..df0c1a2a3 100644 --- a/plinth/modules/bind/__init__.py +++ b/plinth/modules/bind/__init__.py @@ -29,6 +29,8 @@ from plinth import service as service_module from plinth.menu import main_menu from plinth.utils import format_lazy +from .manifest import backup + version = 1 name = _('BIND') diff --git a/plinth/modules/bind/manifest.py b/plinth/modules/bind/manifest.py new file mode 100644 index 000000000..e6d8c619c --- /dev/null +++ b/plinth/modules/bind/manifest.py @@ -0,0 +1,28 @@ +# +# 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 bind. +""" + +from plinth.modules.backups.api import validate as validate_backup + +backup = validate_backup({ + 'config': { + 'files': ['/etc/bind/named.conf.options'] + }, + 'services': ['bind9'] +})