mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Misc renaming for consistency, basically service->category
This commit is contained in:
parent
739bf8e559
commit
3067e8e897
2 changed files with 92 additions and 90 deletions
|
@ -377,6 +377,21 @@
|
||||||
"port_available": "Port {port:d} is available",
|
"port_available": "Port {port:d} is available",
|
||||||
"port_unavailable": "Port {port:d} is not available",
|
"port_unavailable": "Port {port:d} is not available",
|
||||||
"recommend_to_add_first_user": "The post-install is finished but YunoHost needs at least one user to work correctly, you should add one using 'yunohost user create' or the admin interface.",
|
"recommend_to_add_first_user": "The post-install is finished but YunoHost needs at least one user to work correctly, you should add one using 'yunohost user create' or the admin interface.",
|
||||||
|
"regenconf_file_backed_up": "The configuration file '{conf}' has been backed up to '{backup}'",
|
||||||
|
"regenconf_file_copy_failed": "Unable to copy the new configuration file '{new}' to '{conf}'",
|
||||||
|
"regenconf_file_kept_back": "The configuration file '{conf}' is expected to be deleted by regen-conf (category {category}) but has been kept back.",
|
||||||
|
"regenconf_file_manually_modified": "The configuration file '{conf}' has been manually modified and will not be updated",
|
||||||
|
"regenconf_file_manually_removed": "The configuration file '{conf}' has been manually removed and will not be created",
|
||||||
|
"regenconf_file_remove_failed": "Unable to remove the configuration file '{conf}'",
|
||||||
|
"regenconf_file_removed": "The configuration file '{conf}' has been removed",
|
||||||
|
"regenconf_file_updated": "The configuration file '{conf}' has been updated",
|
||||||
|
"regenconf_now_managed_by_yunohost": "The configuration file '{conf}' is now managed by YunoHost (category {category}).",
|
||||||
|
"regenconf_up_to_date": "The configuration is already up-to-date for category '{category}'",
|
||||||
|
"regenconf_updated": "The configuration has been updated for category '{category}'",
|
||||||
|
"regenconf_would_be_updated": "The configuration would have been updated for category '{category}'",
|
||||||
|
"regenconf_dry_pending_applying": "Checking pending configuration which would have been applied for category '{category}'…",
|
||||||
|
"regenconf_failed": "Unable to regenerate the configuration for category(s): {categories}",
|
||||||
|
"regenconf_pending_applying": "Applying pending configuration for category '{category}'…",
|
||||||
"restore_action_required": "You must specify something to restore",
|
"restore_action_required": "You must specify something to restore",
|
||||||
"restore_already_installed_app": "An app is already installed with the id '{app:s}'",
|
"restore_already_installed_app": "An app is already installed with the id '{app:s}'",
|
||||||
"restore_app_failed": "Unable to restore the app '{app:s}'",
|
"restore_app_failed": "Unable to restore the app '{app:s}'",
|
||||||
|
@ -405,18 +420,6 @@
|
||||||
"service_already_started": "Service '{service:s}' has already been started",
|
"service_already_started": "Service '{service:s}' has already been started",
|
||||||
"service_already_stopped": "Service '{service:s}' has already been stopped",
|
"service_already_stopped": "Service '{service:s}' has already been stopped",
|
||||||
"service_cmd_exec_failed": "Unable to execute command '{command:s}'",
|
"service_cmd_exec_failed": "Unable to execute command '{command:s}'",
|
||||||
"service_conf_file_backed_up": "The configuration file '{conf}' has been backed up to '{backup}'",
|
|
||||||
"service_conf_file_copy_failed": "Unable to copy the new configuration file '{new}' to '{conf}'",
|
|
||||||
"service_conf_file_kept_back": "The configuration file '{conf}' is expected to be deleted by service {service} but has been kept back.",
|
|
||||||
"service_conf_file_manually_modified": "The configuration file '{conf}' has been manually modified and will not be updated",
|
|
||||||
"service_conf_file_manually_removed": "The configuration file '{conf}' has been manually removed and will not be created",
|
|
||||||
"service_conf_file_remove_failed": "Unable to remove the configuration file '{conf}'",
|
|
||||||
"service_conf_file_removed": "The configuration file '{conf}' has been removed",
|
|
||||||
"service_conf_file_updated": "The configuration file '{conf}' has been updated",
|
|
||||||
"service_conf_now_managed_by_yunohost": "The configuration file '{conf}' is now managed by YunoHost.",
|
|
||||||
"service_conf_up_to_date": "The configuration is already up-to-date for service '{service}'",
|
|
||||||
"service_conf_updated": "The configuration has been updated for service '{service}'",
|
|
||||||
"service_conf_would_be_updated": "The configuration would have been updated for service '{service}'",
|
|
||||||
"service_description_avahi-daemon": "allows to reach your server using yunohost.local on your local network",
|
"service_description_avahi-daemon": "allows to reach your server using yunohost.local on your local network",
|
||||||
"service_description_dnsmasq": "handles domain name resolution (DNS)",
|
"service_description_dnsmasq": "handles domain name resolution (DNS)",
|
||||||
"service_description_dovecot": "allows e-mail client to access/fetch email (via IMAP and POP3)",
|
"service_description_dovecot": "allows e-mail client to access/fetch email (via IMAP and POP3)",
|
||||||
|
@ -440,9 +443,6 @@
|
||||||
"service_enable_failed": "Unable to enable service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_enable_failed": "Unable to enable service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_enabled": "The service '{service:s}' has been enabled",
|
"service_enabled": "The service '{service:s}' has been enabled",
|
||||||
"service_no_log": "No log to display for service '{service:s}'",
|
"service_no_log": "No log to display for service '{service:s}'",
|
||||||
"service_regenconf_dry_pending_applying": "Checking pending configuration which would have been applied for service '{service}'…",
|
|
||||||
"service_regenconf_failed": "Unable to regenerate the configuration for service(s): {services}",
|
|
||||||
"service_regenconf_pending_applying": "Applying pending configuration for service '{service}'…",
|
|
||||||
"service_remove_failed": "Unable to remove service '{service:s}'",
|
"service_remove_failed": "Unable to remove service '{service:s}'",
|
||||||
"service_removed": "The service '{service:s}' has been removed",
|
"service_removed": "The service '{service:s}' has been removed",
|
||||||
"service_reload_failed": "Unable to reload service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_reload_failed": "Unable to reload service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
|
|
|
@ -43,14 +43,16 @@ PENDING_CONF_DIR = os.path.join(BASE_CONF_PATH, 'pending')
|
||||||
logger = log.getActionLogger('yunohost.regenconf')
|
logger = log.getActionLogger('yunohost.regenconf')
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME : those ain't just services anymore ... what are we supposed to do with this ...
|
||||||
|
# FIXME : check for all reference of 'service' close to operation_logger stuff
|
||||||
@is_unit_operation([('names', 'service')])
|
@is_unit_operation([('names', 'service')])
|
||||||
def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run=False,
|
def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run=False,
|
||||||
list_pending=False):
|
list_pending=False):
|
||||||
"""
|
"""
|
||||||
Regenerate the configuration file(s) for a service
|
Regenerate the configuration file(s)
|
||||||
|
|
||||||
Keyword argument:
|
Keyword argument:
|
||||||
names -- Services name to regenerate configuration of
|
names -- Categories to regenerate configuration of
|
||||||
with_diff -- Show differences in case of configuration changes
|
with_diff -- Show differences in case of configuration changes
|
||||||
force -- Override all manual modifications in configuration files
|
force -- Override all manual modifications in configuration files
|
||||||
dry_run -- Show what would have been regenerated
|
dry_run -- Show what would have been regenerated
|
||||||
|
@ -66,10 +68,10 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
if not with_diff:
|
if not with_diff:
|
||||||
return pending_conf
|
return pending_conf
|
||||||
|
|
||||||
for service, conf_files in pending_conf.items():
|
for category, conf_files in pending_conf.items():
|
||||||
for system_path, pending_path in conf_files.items():
|
for system_path, pending_path in conf_files.items():
|
||||||
|
|
||||||
pending_conf[service][system_path] = {
|
pending_conf[category][system_path] = {
|
||||||
'pending_conf': pending_path,
|
'pending_conf': pending_path,
|
||||||
'diff': _get_files_diff(
|
'diff': _get_files_diff(
|
||||||
system_path, pending_path, True),
|
system_path, pending_path, True),
|
||||||
|
@ -103,12 +105,12 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
pre_args = ['pre', ] + common_args
|
pre_args = ['pre', ] + common_args
|
||||||
|
|
||||||
def _pre_call(name, priority, path, args):
|
def _pre_call(name, priority, path, args):
|
||||||
# create the pending conf directory for the service
|
# create the pending conf directory for the category
|
||||||
service_pending_path = os.path.join(PENDING_CONF_DIR, name)
|
category_pending_path = os.path.join(PENDING_CONF_DIR, name)
|
||||||
filesystem.mkdir(service_pending_path, 0o755, True, uid='root')
|
filesystem.mkdir(category_pending_path, 0o755, True, uid='root')
|
||||||
|
|
||||||
# return the arguments to pass to the script
|
# return the arguments to pass to the script
|
||||||
return pre_args + [service_pending_path, ]
|
return pre_args + [category_pending_path, ]
|
||||||
|
|
||||||
# Don't regen SSH if not specifically specified
|
# Don't regen SSH if not specifically specified
|
||||||
if not names:
|
if not names:
|
||||||
|
@ -118,29 +120,29 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
|
|
||||||
pre_result = hook_callback('conf_regen', names, pre_callback=_pre_call)
|
pre_result = hook_callback('conf_regen', names, pre_callback=_pre_call)
|
||||||
|
|
||||||
# Update the services name
|
# Update the categorys name
|
||||||
names = pre_result['succeed'].keys()
|
names = pre_result['succeed'].keys()
|
||||||
|
|
||||||
if not names:
|
if not names:
|
||||||
raise YunohostError('service_regenconf_failed',
|
raise YunohostError('regenconf_failed',
|
||||||
services=', '.join(pre_result['failed']))
|
categories=', '.join(pre_result['failed']))
|
||||||
|
|
||||||
# Set the processing method
|
# Set the processing method
|
||||||
_regen = _process_regen_conf if not dry_run else lambda *a, **k: True
|
_regen = _process_regen_conf if not dry_run else lambda *a, **k: True
|
||||||
|
|
||||||
operation_logger.related_to = []
|
operation_logger.related_to = []
|
||||||
|
|
||||||
# Iterate over services and process pending conf
|
# Iterate over categorys and process pending conf
|
||||||
for service, conf_files in _get_pending_conf(names).items():
|
for category, conf_files in _get_pending_conf(names).items():
|
||||||
if not dry_run:
|
if not dry_run:
|
||||||
operation_logger.related_to.append(('service', service))
|
operation_logger.related_to.append(('service', category))
|
||||||
|
|
||||||
logger.debug(m18n.n(
|
logger.debug(m18n.n(
|
||||||
'service_regenconf_pending_applying' if not dry_run else
|
'regenconf_pending_applying' if not dry_run else
|
||||||
'service_regenconf_dry_pending_applying',
|
'regenconf_dry_pending_applying',
|
||||||
service=service))
|
category=category))
|
||||||
|
|
||||||
conf_hashes = _get_conf_hashes(service)
|
conf_hashes = _get_conf_hashes(category)
|
||||||
succeed_regen = {}
|
succeed_regen = {}
|
||||||
failed_regen = {}
|
failed_regen = {}
|
||||||
|
|
||||||
|
@ -179,7 +181,7 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
system_path, pending_path, save=False)
|
system_path, pending_path, save=False)
|
||||||
else:
|
else:
|
||||||
logger.info(m18n.n(
|
logger.info(m18n.n(
|
||||||
'service_conf_file_manually_removed',
|
'regenconf_file_manually_removed',
|
||||||
conf=system_path))
|
conf=system_path))
|
||||||
conf_status = 'removed'
|
conf_status = 'removed'
|
||||||
|
|
||||||
|
@ -195,16 +197,16 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
# we assume that it is safe to regen it, since the file is backuped
|
# we assume that it is safe to regen it, since the file is backuped
|
||||||
# anyway (by default in _regen), as long as we warn the user
|
# anyway (by default in _regen), as long as we warn the user
|
||||||
# appropriately.
|
# appropriately.
|
||||||
logger.info(m18n.n('service_conf_now_managed_by_yunohost',
|
logger.info(m18n.n('regenconf_now_managed_by_yunohost',
|
||||||
conf=system_path))
|
conf=system_path, category=category))
|
||||||
regenerated = _regen(system_path, pending_path)
|
regenerated = _regen(system_path, pending_path)
|
||||||
conf_status = 'new'
|
conf_status = 'new'
|
||||||
elif force:
|
elif force:
|
||||||
regenerated = _regen(system_path)
|
regenerated = _regen(system_path)
|
||||||
conf_status = 'force-removed'
|
conf_status = 'force-removed'
|
||||||
else:
|
else:
|
||||||
logger.info(m18n.n('service_conf_file_kept_back',
|
logger.info(m18n.n('regenconf_file_kept_back',
|
||||||
conf=system_path, service=service))
|
conf=system_path, category=category))
|
||||||
conf_status = 'unmanaged'
|
conf_status = 'unmanaged'
|
||||||
|
|
||||||
# -> system conf has not been manually modified
|
# -> system conf has not been manually modified
|
||||||
|
@ -231,7 +233,7 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
conf_status = 'force-updated'
|
conf_status = 'force-updated'
|
||||||
else:
|
else:
|
||||||
logger.warning(m18n.n(
|
logger.warning(m18n.n(
|
||||||
'service_conf_file_manually_modified',
|
'regenconf_file_manually_modified',
|
||||||
conf=system_path))
|
conf=system_path))
|
||||||
conf_status = 'modified'
|
conf_status = 'modified'
|
||||||
|
|
||||||
|
@ -247,21 +249,21 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
else:
|
else:
|
||||||
failed_regen[system_path] = conf_result
|
failed_regen[system_path] = conf_result
|
||||||
|
|
||||||
# Check for service conf changes
|
# Check for category conf changes
|
||||||
if not succeed_regen and not failed_regen:
|
if not succeed_regen and not failed_regen:
|
||||||
logger.debug(m18n.n('service_conf_up_to_date', service=service))
|
logger.debug(m18n.n('regenconf_up_to_date', category=category))
|
||||||
continue
|
continue
|
||||||
elif not failed_regen:
|
elif not failed_regen:
|
||||||
logger.success(m18n.n(
|
logger.success(m18n.n(
|
||||||
'service_conf_updated' if not dry_run else
|
'regenconf_updated' if not dry_run else
|
||||||
'service_conf_would_be_updated',
|
'regenconf_would_be_updated',
|
||||||
service=service))
|
category=category))
|
||||||
|
|
||||||
if succeed_regen and not dry_run:
|
if succeed_regen and not dry_run:
|
||||||
_update_conf_hashes(service, conf_hashes)
|
_update_conf_hashes(category, conf_hashes)
|
||||||
|
|
||||||
# Append the service results
|
# Append the category results
|
||||||
result[service] = {
|
result[category] = {
|
||||||
'applied': succeed_regen,
|
'applied': succeed_regen,
|
||||||
'pending': failed_regen
|
'pending': failed_regen
|
||||||
}
|
}
|
||||||
|
@ -274,7 +276,7 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
post_args = ['post', ] + common_args
|
post_args = ['post', ] + common_args
|
||||||
|
|
||||||
def _pre_call(name, priority, path, args):
|
def _pre_call(name, priority, path, args):
|
||||||
# append coma-separated applied changes for the service
|
# append coma-separated applied changes for the category
|
||||||
if name in result and result[name]['applied']:
|
if name in result and result[name]['applied']:
|
||||||
regen_conf_files = ','.join(result[name]['applied'].keys())
|
regen_conf_files = ','.join(result[name]['applied'].keys())
|
||||||
else:
|
else:
|
||||||
|
@ -379,14 +381,14 @@ def _calculate_hash(path):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def _get_pending_conf(services=[]):
|
def _get_pending_conf(categories=[]):
|
||||||
"""Get pending configuration for service(s)
|
"""Get pending configuration for categories
|
||||||
|
|
||||||
Iterate over the pending configuration directory for given service(s) - or
|
Iterate over the pending configuration directory for given categories - or
|
||||||
all if empty - and look for files inside. Each file is considered as a
|
all if empty - and look for files inside. Each file is considered as a
|
||||||
pending configuration file and therefore must be in the same directory
|
pending configuration file and therefore must be in the same directory
|
||||||
tree than the system file that it replaces.
|
tree than the system file that it replaces.
|
||||||
The result is returned as a dict of services with pending configuration as
|
The result is returned as a dict of categories with pending configuration as
|
||||||
key and a dict of `system_conf_path` => `pending_conf_path` as value.
|
key and a dict of `system_conf_path` => `pending_conf_path` as value.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -395,63 +397,63 @@ def _get_pending_conf(services=[]):
|
||||||
if not os.path.isdir(PENDING_CONF_DIR):
|
if not os.path.isdir(PENDING_CONF_DIR):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
if not services:
|
if not categories:
|
||||||
services = os.listdir(PENDING_CONF_DIR)
|
categories = os.listdir(PENDING_CONF_DIR)
|
||||||
|
|
||||||
for name in services:
|
for name in categories:
|
||||||
service_pending_path = os.path.join(PENDING_CONF_DIR, name)
|
category_pending_path = os.path.join(PENDING_CONF_DIR, name)
|
||||||
|
|
||||||
if not os.path.isdir(service_pending_path):
|
if not os.path.isdir(category_pending_path):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
path_index = len(service_pending_path)
|
path_index = len(category_pending_path)
|
||||||
service_conf = {}
|
category_conf = {}
|
||||||
|
|
||||||
for root, dirs, files in os.walk(service_pending_path):
|
for root, dirs, files in os.walk(category_pending_path):
|
||||||
for filename in files:
|
for filename in files:
|
||||||
pending_path = os.path.join(root, filename)
|
pending_path = os.path.join(root, filename)
|
||||||
service_conf[pending_path[path_index:]] = pending_path
|
category_conf[pending_path[path_index:]] = pending_path
|
||||||
|
|
||||||
if service_conf:
|
if category_conf:
|
||||||
result[name] = service_conf
|
result[name] = category_conf
|
||||||
else:
|
else:
|
||||||
# remove empty directory
|
# remove empty directory
|
||||||
shutil.rmtree(service_pending_path, ignore_errors=True)
|
shutil.rmtree(category_pending_path, ignore_errors=True)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def _get_conf_hashes(service):
|
def _get_conf_hashes(category):
|
||||||
"""Get the registered conf hashes for a service"""
|
"""Get the registered conf hashes for a category"""
|
||||||
|
|
||||||
services = _get_services()
|
categories = _get_categories()
|
||||||
|
|
||||||
if service not in services:
|
if category not in categories:
|
||||||
logger.debug("Service %s is not in services.yml yet.", service)
|
logger.debug("category %s is not in categories.yml yet.", category)
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
elif services[service] is None or 'conffiles' not in services[service]:
|
elif categories[category] is None or 'conffiles' not in categories[category]:
|
||||||
logger.debug("No configuration files for service %s.", service)
|
logger.debug("No configuration files for category %s.", category)
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return services[service]['conffiles']
|
return categories[category]['conffiles']
|
||||||
|
|
||||||
|
|
||||||
def _update_conf_hashes(service, hashes):
|
def _update_conf_hashes(category, hashes):
|
||||||
"""Update the registered conf hashes for a service"""
|
"""Update the registered conf hashes for a category"""
|
||||||
logger.debug("updating conf hashes for '%s' with: %s",
|
logger.debug("updating conf hashes for '%s' with: %s",
|
||||||
service, hashes)
|
category, hashes)
|
||||||
services = _get_services()
|
categories = _get_categories()
|
||||||
service_conf = services.get(service, {})
|
category_conf = categories.get(category, {})
|
||||||
|
|
||||||
# Handle the case where services[service] is set to null in the yaml
|
# Handle the case where categories[category] is set to null in the yaml
|
||||||
if service_conf is None:
|
if category_conf is None:
|
||||||
service_conf = {}
|
category_conf = {}
|
||||||
|
|
||||||
service_conf['conffiles'] = hashes
|
category_conf['conffiles'] = hashes
|
||||||
services[service] = service_conf
|
categories[category] = category_conf
|
||||||
_save_services(services)
|
_save_categories(categories)
|
||||||
|
|
||||||
|
|
||||||
def _process_regen_conf(system_conf, new_conf=None, save=True):
|
def _process_regen_conf(system_conf, new_conf=None, save=True):
|
||||||
|
@ -471,13 +473,13 @@ def _process_regen_conf(system_conf, new_conf=None, save=True):
|
||||||
filesystem.mkdir(backup_dir, 0o755, True)
|
filesystem.mkdir(backup_dir, 0o755, True)
|
||||||
|
|
||||||
shutil.copy2(system_conf, backup_path)
|
shutil.copy2(system_conf, backup_path)
|
||||||
logger.debug(m18n.n('service_conf_file_backed_up',
|
logger.debug(m18n.n('regenconf_file_backed_up',
|
||||||
conf=system_conf, backup=backup_path))
|
conf=system_conf, backup=backup_path))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not new_conf:
|
if not new_conf:
|
||||||
os.remove(system_conf)
|
os.remove(system_conf)
|
||||||
logger.debug(m18n.n('service_conf_file_removed',
|
logger.debug(m18n.n('regenconf_file_removed',
|
||||||
conf=system_conf))
|
conf=system_conf))
|
||||||
else:
|
else:
|
||||||
system_dir = os.path.dirname(system_conf)
|
system_dir = os.path.dirname(system_conf)
|
||||||
|
@ -486,12 +488,12 @@ def _process_regen_conf(system_conf, new_conf=None, save=True):
|
||||||
filesystem.mkdir(system_dir, 0o755, True)
|
filesystem.mkdir(system_dir, 0o755, True)
|
||||||
|
|
||||||
shutil.copyfile(new_conf, system_conf)
|
shutil.copyfile(new_conf, system_conf)
|
||||||
logger.debug(m18n.n('service_conf_file_updated',
|
logger.debug(m18n.n('regenconf_file_updated',
|
||||||
conf=system_conf))
|
conf=system_conf))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning("Exception while trying to regenerate conf '%s': %s", system_conf, e, exc_info=1)
|
logger.warning("Exception while trying to regenerate conf '%s': %s", system_conf, e, exc_info=1)
|
||||||
if not new_conf and os.path.exists(system_conf):
|
if not new_conf and os.path.exists(system_conf):
|
||||||
logger.warning(m18n.n('service_conf_file_remove_failed',
|
logger.warning(m18n.n('regenconf_file_remove_failed',
|
||||||
conf=system_conf),
|
conf=system_conf),
|
||||||
exc_info=1)
|
exc_info=1)
|
||||||
return False
|
return False
|
||||||
|
@ -506,7 +508,7 @@ def _process_regen_conf(system_conf, new_conf=None, save=True):
|
||||||
copy_succeed = False
|
copy_succeed = False
|
||||||
finally:
|
finally:
|
||||||
if not copy_succeed:
|
if not copy_succeed:
|
||||||
logger.warning(m18n.n('service_conf_file_copy_failed',
|
logger.warning(m18n.n('regenconf_file_copy_failed',
|
||||||
conf=system_conf, new=new_conf),
|
conf=system_conf, new=new_conf),
|
||||||
exc_info=1)
|
exc_info=1)
|
||||||
return False
|
return False
|
||||||
|
@ -518,9 +520,9 @@ def manually_modified_files():
|
||||||
|
|
||||||
# We do this to have --quiet, i.e. don't throw a whole bunch of logs
|
# We do this to have --quiet, i.e. don't throw a whole bunch of logs
|
||||||
# just to fetch this...
|
# just to fetch this...
|
||||||
# Might be able to optimize this by looking at what service_regenconf does
|
# Might be able to optimize this by looking at what the regen conf does
|
||||||
# and only do the part that checks file hashes...
|
# and only do the part that checks file hashes...
|
||||||
cmd = "yunohost service regen-conf --dry-run --output-as json --quiet"
|
cmd = "yunohost tools regen-conf --dry-run --output-as json --quiet"
|
||||||
j = json.loads(subprocess.check_output(cmd.split()))
|
j = json.loads(subprocess.check_output(cmd.split()))
|
||||||
|
|
||||||
# j is something like :
|
# j is something like :
|
||||||
|
|
Loading…
Add table
Reference in a new issue