mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] display service journalctl logs on failed to start/stop/enable/disable error
This commit is contained in:
parent
e8412ae0c8
commit
061b6bbcce
2 changed files with 25 additions and 8 deletions
|
@ -334,9 +334,9 @@
|
|||
"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_disable_failed": "Unable to disable service '{service:s}'",
|
||||
"service_disable_failed": "Unable to disable service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||
"service_disabled": "The service '{service:s}' has been disabled",
|
||||
"service_enable_failed": "Unable to enable service '{service: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_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}'...",
|
||||
|
@ -344,10 +344,10 @@
|
|||
"service_regenconf_pending_applying": "Applying pending configuration for service '{service}'...",
|
||||
"service_remove_failed": "Unable to remove service '{service:s}'",
|
||||
"service_removed": "The service '{service:s}' has been removed",
|
||||
"service_start_failed": "Unable to start service '{service:s}'",
|
||||
"service_start_failed": "Unable to start service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||
"service_started": "The service '{service:s}' has been started",
|
||||
"service_status_failed": "Unable to determine status of service '{service:s}'",
|
||||
"service_stop_failed": "Unable to stop service '{service:s}'",
|
||||
"service_stop_failed": "Unable to stop service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||
"service_stopped": "The service '{service:s}' has been stopped",
|
||||
"service_unknown": "Unknown service '{service:s}'",
|
||||
"ssowat_conf_generated": "The SSOwat configuration has been generated",
|
||||
|
|
|
@ -115,13 +115,16 @@ def service_start(names):
|
|||
"""
|
||||
if isinstance(names, str):
|
||||
names = [names]
|
||||
|
||||
for name in names:
|
||||
if _run_service_command('start', name):
|
||||
logger.success(m18n.n('service_started', service=name))
|
||||
else:
|
||||
if service_status(name)['status'] != 'running':
|
||||
raise MoulinetteError(errno.EPERM,
|
||||
m18n.n('service_start_failed', service=name))
|
||||
m18n.n('service_start_failed',
|
||||
service=name,
|
||||
logs=_get_journalctl_logs(name)))
|
||||
logger.info(m18n.n('service_already_started', service=name))
|
||||
|
||||
|
||||
|
@ -141,7 +144,9 @@ def service_stop(names):
|
|||
else:
|
||||
if service_status(name)['status'] != 'inactive':
|
||||
raise MoulinetteError(errno.EPERM,
|
||||
m18n.n('service_stop_failed', service=name))
|
||||
m18n.n('service_stop_failed',
|
||||
service=name,
|
||||
logs=_get_journalctl_logs(name)))
|
||||
logger.info(m18n.n('service_already_stopped', service=name))
|
||||
|
||||
|
||||
|
@ -160,7 +165,9 @@ def service_enable(names):
|
|||
logger.success(m18n.n('service_enabled', service=name))
|
||||
else:
|
||||
raise MoulinetteError(errno.EPERM,
|
||||
m18n.n('service_enable_failed', service=name))
|
||||
m18n.n('service_enable_failed',
|
||||
service=name,
|
||||
logs=_get_journalctl_logs(name)))
|
||||
|
||||
|
||||
def service_disable(names):
|
||||
|
@ -178,7 +185,9 @@ def service_disable(names):
|
|||
logger.success(m18n.n('service_disabled', service=name))
|
||||
else:
|
||||
raise MoulinetteError(errno.EPERM,
|
||||
m18n.n('service_disable_failed', service=name))
|
||||
m18n.n('service_disable_failed',
|
||||
service=name,
|
||||
logs=_get_journalctl_logs(name)))
|
||||
|
||||
|
||||
def service_status(names=[]):
|
||||
|
@ -798,3 +807,11 @@ def manually_modified_files():
|
|||
output.append(filename)
|
||||
|
||||
return output
|
||||
|
||||
|
||||
def _get_journalctl_logs(service):
|
||||
try:
|
||||
return subprocess.check_output("journalctl -xn -u %s" % service, shell=True)
|
||||
except:
|
||||
import traceback
|
||||
return "error while get services logs from journalctl:\n%s" % traceback.format_exc()
|
||||
|
|
Loading…
Add table
Reference in a new issue