diff options
| author | Rich Megginson <rmeggins@redhat.com> | 2016-08-05 08:26:37 -0600 | 
|---|---|---|
| committer | Rich Megginson <rmeggins@redhat.com> | 2016-08-08 11:55:52 -0600 | 
| commit | f602a47aeaaae4dc99c96884ee6090f50d0542a4 (patch) | |
| tree | ff5f93544146e14bda4250bec27bee5eb3aa21a8 | |
| parent | 91405ce840e19d56d7c6f653b07e640af23c34aa (diff) | |
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.
| -rw-r--r-- | callback_plugins/default.py | 8 | 
1 files changed, 7 insertions, 1 deletions
| 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]: | 
