From 82101cc9b34f5bde21b75711b8f81ebd2ef5ae1c Mon Sep 17 00:00:00 2001 From: nbenedek Date: Sun, 9 Apr 2023 14:58:52 +0200 Subject: [PATCH] tor: Completely uninstall app Tests: * Manually reinstall the app and check if hidden service is regenerated * Functional tests passed Signed-off-by: nbenedek [sunil: Update docstrings, make uninstall fail-safe] Signed-off-by: Sunil Mohan Adapa Reviewed-by: Sunil Mohan Adapa --- plinth/modules/tor/__init__.py | 5 +++++ plinth/modules/tor/privileged.py | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/plinth/modules/tor/__init__.py b/plinth/modules/tor/__init__.py index 122d8fe57..02d52d4f6 100644 --- a/plinth/modules/tor/__init__.py +++ b/plinth/modules/tor/__init__.py @@ -187,6 +187,11 @@ class TorApp(app_module.App): if not old_version: self.enable() + def uninstall(self): + """De-configure and uninstall the app.""" + super().uninstall() + privileged.uninstall() + def update_hidden_service_domain(status=None): """Update HS domain with Name Services module.""" diff --git a/plinth/modules/tor/privileged.py b/plinth/modules/tor/privileged.py index 0e64bda23..455068a63 100644 --- a/plinth/modules/tor/privileged.py +++ b/plinth/modules/tor/privileged.py @@ -5,6 +5,7 @@ import codecs import os import pathlib import re +import shutil import socket import subprocess import time @@ -507,3 +508,14 @@ def _set_onion_header(hidden_service): encoding='utf-8') action_utils.service_reload('apache2') + + +@privileged +def uninstall(): + """Remove create instances.""" + directories = [ + '/etc/tor/instances/', '/var/lib/tor-instances/', + '/var/run/tor-instances/' + ] + for directory in directories: + shutil.rmtree(directory, ignore_errors=True)