[enh] allow to use a journal for hook exec

This commit is contained in:
Laurent Peuch 2016-06-24 05:33:10 +02:00
parent 08b7c4f6d7
commit 1355b2b754

View file

@ -297,7 +297,7 @@ def hook_callback(action, hooks=[], args=None, no_trace=False, chdir=None,
def hook_exec(path, args=None, raise_on_error=False, no_trace=False, def hook_exec(path, args=None, raise_on_error=False, no_trace=False,
chdir=None, env=None, user="admin"): chdir=None, env=None, journal=None, user="admin"):
""" """
Execute hook from a file with arguments Execute hook from a file with arguments
@ -359,11 +359,18 @@ def hook_exec(path, args=None, raise_on_error=False, no_trace=False,
else: else:
logger.info(m18n.n('executing_script', script=path)) logger.info(m18n.n('executing_script', script=path))
# Define output callbacks and call command if journal is None:
callbacks = ( # Define output callbacks and call command
lambda l: logger.info(l.rstrip()), callbacks = (
lambda l: logger.warning(l.rstrip()), lambda l: logger.info(l.rstrip()),
) lambda l: logger.warning(l.rstrip()),
)
else:
callbacks = journal.as_callbacks_tuple(
stdout=lambda l: logger.info(l.rstrip()),
stderr=lambda l: logger.warning(l.rstrip()),
)
returncode = call_async_output( returncode = call_async_output(
command, callbacks, shell=False, cwd=chdir command, callbacks, shell=False, cwd=chdir
) )