Refactor check about apps being installed on domain when trying to remove a domain

This commit is contained in:
Alexandre Aubin 2020-04-28 05:36:11 +02:00
parent 0ece52dae8
commit 196a3d4d47

View file

@ -25,14 +25,13 @@
""" """
import os import os
import re import re
import yaml
from moulinette import m18n, msettings from moulinette import m18n, msettings
from moulinette.core import MoulinetteError from moulinette.core import MoulinetteError
from yunohost.utils.error import YunohostError from yunohost.utils.error import YunohostError
from moulinette.utils.log import getActionLogger from moulinette.utils.log import getActionLogger
from yunohost.app import app_ssowatconf from yunohost.app import app_ssowatconf, _installed_apps, _get_app_settings
from yunohost.regenconf import regen_conf, _force_clear_hashes, _process_regen_conf from yunohost.regenconf import regen_conf, _force_clear_hashes, _process_regen_conf
from yunohost.utils.network import get_public_ip from yunohost.utils.network import get_public_ip
from yunohost.log import is_unit_operation from yunohost.log import is_unit_operation
@ -180,15 +179,9 @@ def domain_remove(operation_logger, domain, force=False):
raise YunohostError('domain_cannot_remove_main_add_new_one', domain=domain) raise YunohostError('domain_cannot_remove_main_add_new_one', domain=domain)
# Check if apps are installed on the domain # Check if apps are installed on the domain
for app in os.listdir('/etc/yunohost/apps/'): app_settings = [_get_app_settings(app) for app in _installed_apps()]
with open('/etc/yunohost/apps/' + app + '/settings.yml') as f: if any(s["domain"] == domain for s in app_settings):
try: raise YunohostError('domain_uninstall_app_first')
app_domain = yaml.load(f)['domain']
except:
continue
else:
if app_domain == domain:
raise YunohostError('domain_uninstall_app_first')
operation_logger.start() operation_logger.start()
ldap = _get_ldap_interface() ldap = _get_ldap_interface()