From f602a47aeaaae4dc99c96884ee6090f50d0542a4 Mon Sep 17 00:00:00 2001
From: Rich Megginson <rmeggins@redhat.com>
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(-)

(limited to 'callback_plugins')

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