From 0a100c7f0693ba70f40d09d6ba9ece4669af795f Mon Sep 17 00:00:00 2001 From: Martin Krizek Date: Tue, 24 Sep 2024 10:52:20 +0200 Subject: [PATCH] dnf5: fix tb when plugins API is not available (#83969) Follow up on https://github.com/ansible/ansible/pull/83105 --- changelogs/fragments/dnf5-plugins-compat.yml | 2 ++ lib/ansible/modules/dnf5.py | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/dnf5-plugins-compat.yml diff --git a/changelogs/fragments/dnf5-plugins-compat.yml b/changelogs/fragments/dnf5-plugins-compat.yml new file mode 100644 index 00000000000..5d42b0f99f1 --- /dev/null +++ b/changelogs/fragments/dnf5-plugins-compat.yml @@ -0,0 +1,2 @@ +bugfixes: + - "dnf5 - fix traceback when ``enable_plugins``/``disable_plugins`` is used on ``python3-libdnf5`` versions that do not support this functionality" diff --git a/lib/ansible/modules/dnf5.py b/lib/ansible/modules/dnf5.py index 6ce15a047ac..df4ee206748 100644 --- a/lib/ansible/modules/dnf5.py +++ b/lib/ansible/modules/dnf5.py @@ -451,7 +451,15 @@ class Dnf5Module(YumDnf): def fail_on_non_existing_plugins(self, base): # https://github.com/rpm-software-management/dnf5/issues/1460 - plugin_names = [p.get_name() for p in base.get_plugins_info()] + try: + plugin_names = [p.get_name() for p in base.get_plugins_info()] + except AttributeError: + # plugins functionality requires python3-libdnf5 5.2.0.0+ + # silently ignore here, the module will fail later when + # base.enable_disable_plugins is attempted to be used if + # user specifies enable_plugin/disable_plugin + return + msg = [] if enable_unmatched := set(self.enable_plugin).difference(plugin_names): msg.append(