From 3a59cb25f486eb6c633995f5fe01413c0ed42116 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 11 Aug 2022 16:07:28 -0400 Subject: [PATCH] add info about plugin name when ignoring abstract errors (#78465) * add info about plugin name when ignoring abstract related to #78464 * added error to narrow down method --- changelogs/fragments/abstract_errors_info.yml | 3 +++ lib/ansible/plugins/loader.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/abstract_errors_info.yml diff --git a/changelogs/fragments/abstract_errors_info.yml b/changelogs/fragments/abstract_errors_info.yml new file mode 100644 index 00000000000..1a1c5d7b378 --- /dev/null +++ b/changelogs/fragments/abstract_errors_info.yml @@ -0,0 +1,3 @@ +bugfixes: + - plugin loader, now when skipping a plugin due to an abstract method error we provide that in 'verbose' mode instead of totally obscuring the error. + The current implementation assumed only the base classes would trigger this and failed to consider 'in development' plugins. diff --git a/lib/ansible/plugins/loader.py b/lib/ansible/plugins/loader.py index ef72587b126..f2cc7f3f89d 100644 --- a/lib/ansible/plugins/loader.py +++ b/lib/ansible/plugins/loader.py @@ -873,8 +873,8 @@ class PluginLoader: obj = instance except TypeError as e: if "abstract" in e.args[0]: - # Abstract Base Class. The found plugin file does not - # fully implement the defined interface. + # Abstract Base Class or incomplete plugin, don't load + display.v('Returning not found on "%s" as it has unimplemented abstract methods; %s' % (name, to_native(e))) return get_with_context_result(None, plugin_load_context) raise