From e001a37449c10cc922c8727cac0c34e76a95bc01 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Wed, 3 Oct 2018 11:49:09 -0700 Subject: [PATCH] transmission: Enable backup/restore Reviewed-by: James Valleroy --- actions/transmission | 1 - functional_tests/features/transmission.feature | 11 +++++++++++ plinth/modules/transmission/__init__.py | 2 +- plinth/modules/transmission/manifest.py | 11 +++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/actions/transmission b/actions/transmission index 7e727a515..d74ec0ba0 100755 --- a/actions/transmission +++ b/actions/transmission @@ -27,7 +27,6 @@ import sys from plinth import action_utils -SERVICE_CONFIG = '/etc/default/transmission-daemon' TRANSMISSION_CONFIG = '/etc/transmission-daemon/settings.json' diff --git a/functional_tests/features/transmission.feature b/functional_tests/features/transmission.feature index eef5c021f..06d0ecad6 100644 --- a/functional_tests/features/transmission.feature +++ b/functional_tests/features/transmission.feature @@ -38,3 +38,14 @@ Scenario: Upload a torrent to transmission When all torrents are removed from transmission And I upload a sample torrent to transmission Then there should be 1 torrents listed in transmission + +Scenario: Backup and restore transmission + Given the transmission application is enabled + When all torrents are removed from transmission + And I upload a sample torrent to transmission + And I create a backup of the transmission app data + And I export the transmission app data backup + And all torrents are removed from transmission + And I restore the transmission app data backup + Then the transmission service should be running + And there should be 1 torrents listed in transmission diff --git a/plinth/modules/transmission/__init__.py b/plinth/modules/transmission/__init__.py index 7e4fa58f3..8e77bcf80 100644 --- a/plinth/modules/transmission/__init__.py +++ b/plinth/modules/transmission/__init__.py @@ -27,7 +27,7 @@ from plinth import action_utils, actions, frontpage from plinth.menu import main_menu from plinth.modules.users import register_group -from .manifest import clients +from .manifest import backup, clients version = 2 diff --git a/plinth/modules/transmission/manifest.py b/plinth/modules/transmission/manifest.py index 6626d5ef0..d6ad33246 100644 --- a/plinth/modules/transmission/manifest.py +++ b/plinth/modules/transmission/manifest.py @@ -18,6 +18,7 @@ from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate +from plinth.modules.backups.api import validate as validate_backup clients = validate([{ 'name': _('Transmission'), @@ -26,3 +27,13 @@ clients = validate([{ 'url': '/transmission' }] }]) + +backup = validate_backup({ + 'data': { + 'directories': ['/var/lib/transmission-daemon/.config'] + }, + 'secrets': { + 'files': ['/etc/transmission-daemon/settings.json'] + }, + 'services': ['transmission-daemon'] +})