tor: Enable backup/restore

Backup and restore all instances of tor and not just FreedomBox instance.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Joseph Nuthalapati 2018-10-23 13:44:49 -07:00 committed by James Valleroy
parent 6dd7823c9e
commit 47faa5512d
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
3 changed files with 29 additions and 1 deletions

View File

@ -52,6 +52,23 @@ Scenario: Set download software packages over tor
When I enable download software packages over tor
Then download software packages over tor should be enabled
# TODO: Test more thoroughly by checking same hidden service is restored and by
# actually connecting using Tor.
Scenario: Backup and restore tor
Given the tor application is enabled
And tor relay is enabled
And tor bridge relay is enabled
And tor hidden services are enabled
When I create a backup of the tor app data
And I disable tor relay
And I disable tor hidden services
And I export the tor app data backup
And I restore the tor app data backup
Then the tor service should be running
And tor relay should be enabled
And tor bridge relay should be enabled
And tor hidden services should be enabled
Scenario: Disable tor application
Given the tor application is enabled
When I disable the tor application

View File

@ -29,7 +29,7 @@ from plinth.modules.names import SERVICES
from plinth.signals import domain_added, domain_removed
from . import utils
from .manifest import clients
from .manifest import backup, clients
version = 2

View File

@ -18,6 +18,7 @@
from django.utils.translation import ugettext_lazy as _
from plinth.clients import store_url, validate
from plinth.modules.backups.api import validate as validate_backup
_orbot_package_id = 'org.torproject.android'
_tor_browser_download_url = \
@ -54,3 +55,13 @@ clients = validate([{
'url': store_url('f-droid', _orbot_package_id)
}]
}])
backup = validate_backup({
'config': {
'directories': ['/etc/tor/']
},
'secrets': {
'directories': ['/var/lib/tor/', '/var/lib/tor-instances/']
},
'services': ['tor@service']
})