Merge "Collect logging information into ara callback" into feature/zuulv3
diff --git a/zuul/executor/server.py b/zuul/executor/server.py
index 95e8e0b..499b4d8 100644
--- a/zuul/executor/server.py
+++ b/zuul/executor/server.py
@@ -29,6 +29,10 @@
from zuul.lib.yamlutil import yaml
from zuul.lib.config import get_default
+try:
+ import ara.plugins.callbacks as ara_callbacks
+except ImportError:
+ ara_callbacks = None
import gear
import zuul.merger.merger
@@ -1394,6 +1398,17 @@
yaml.safe_dump(secrets, default_flow_style=False))
jobdir_playbook.has_secrets = True
+ # TODO(mordred) This should likely be extracted into a more generalized
+ # mechanism for deployers being able to add callback
+ # plugins.
+ if ara_callbacks:
+ callback_path = '%s:%s' % (
+ self.executor_server.callback_dir,
+ os.path.dirname(ara_callbacks.__file__))
+ callback_whitelist = 'zuul_json,ara'
+ else:
+ callback_path = self.executor_server.callback_dir
+ callback_whitelist = 'zuul_json'
with open(jobdir_playbook.ansible_config, 'w') as config:
config.write('[defaults]\n')
config.write('hostfile = %s\n' % self.jobdir.inventory)
@@ -1409,10 +1424,9 @@
config.write('library = %s\n'
% self.executor_server.library_dir)
config.write('command_warnings = False\n')
- config.write('callback_plugins = %s\n'
- % self.executor_server.callback_dir)
+ config.write('callback_plugins = %s\n' % callback_path)
config.write('stdout_callback = zuul_stream\n')
- config.write('callback_whitelist = zuul_json\n')
+ config.write('callback_whitelist = %s\n' % callback_whitelist)
# bump the timeout because busy nodes may take more than
# 10s to respond
config.write('timeout = 30\n')