From f602a47aeaaae4dc99c96884ee6090f50d0542a4 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Fri, 5 Aug 2016 08:26:37 -0600 Subject: make the improved log formatter work with ansible 2.1 Ansible 2.1 changed the base class used for log formatting. Using the old one with ansible 2.1 caused a "too much recursion" problem. The fix is to call _dump_results in the new CallbackBase base class when using ansible 2.1 or later. --- callback_plugins/default.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/callback_plugins/default.py b/callback_plugins/default.py index 31e3d7d4c..bc0b207bb 100644 --- a/callback_plugins/default.py +++ b/callback_plugins/default.py @@ -27,6 +27,12 @@ DEFAULT_MODULE = imp.load_source( DEFAULT_PATH ) +try: + from ansible.plugins.callback import CallbackBase + BASECLASS = CallbackBase +except ImportError: # < ansible 2.1 + BASECLASS = DEFAULT_MODULE.CallbackModule + class CallbackModule(DEFAULT_MODULE.CallbackModule): # pylint: disable=too-few-public-methods,no-init ''' @@ -48,7 +54,7 @@ class CallbackModule(DEFAULT_MODULE.CallbackModule): # pylint: disable=too-few- if key in result: save[key] = result.pop(key) - output = DEFAULT_MODULE.CallbackModule._dump_results(self, result) + output = BASECLASS._dump_results(self, result) # pylint: disable=protected-access for key in ['stdout', 'stderr', 'msg']: if key in save and save[key]: -- cgit v1.2.3