From a0fb10c2ab309524430d9e11e6513df9e948134b Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Mon, 14 Oct 2019 12:30:46 -0400 Subject: [PATCH] [stable-2.9] package_facts - use AnsibleModule.warn() for warnings (cherry picked from commit 2b1e24fc49) Co-authored-by: Sam Doran --- .../fragments/package-facts-use-module-warnings.yaml | 2 ++ lib/ansible/module_utils/facts/packages.py | 2 -- lib/ansible/modules/packaging/os/package_facts.py | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) create mode 100644 changelogs/fragments/package-facts-use-module-warnings.yaml diff --git a/changelogs/fragments/package-facts-use-module-warnings.yaml b/changelogs/fragments/package-facts-use-module-warnings.yaml new file mode 100644 index 00000000000..b837bc972d1 --- /dev/null +++ b/changelogs/fragments/package-facts-use-module-warnings.yaml @@ -0,0 +1,2 @@ +bugfixes: + - package_facts - use module warnings rather than a custom implementation for reporting warnings diff --git a/lib/ansible/module_utils/facts/packages.py b/lib/ansible/module_utils/facts/packages.py index 8a3cb198f0a..39b65f7812b 100644 --- a/lib/ansible/module_utils/facts/packages.py +++ b/lib/ansible/module_utils/facts/packages.py @@ -18,8 +18,6 @@ def get_all_pkg_managers(): class PkgMgr(with_metaclass(ABCMeta, object)): - warnings = [] - @abstractmethod def is_available(self): # This method is supposed to return True/False if the package manager is currently installed/usable diff --git a/lib/ansible/modules/packaging/os/package_facts.py b/lib/ansible/modules/packaging/os/package_facts.py index 9ec4ce39cac..2ff76fefda5 100644 --- a/lib/ansible/modules/packaging/os/package_facts.py +++ b/lib/ansible/modules/packaging/os/package_facts.py @@ -230,7 +230,7 @@ class RPM(LibMgr): ''' we expect the python bindings installed, but this gives warning if they are missing and we have rpm cli''' we_have_lib = super(RPM, self).is_available() if not we_have_lib and get_bin_path('rpm'): - self.warnings.append('Found "rpm" but %s' % (missing_required_lib('rpm'))) + module.warn('Found "rpm" but %s' % (missing_required_lib('rpm'))) return we_have_lib @@ -256,7 +256,7 @@ class APT(LibMgr): if not we_have_lib: for exe in ('apt', 'apt-get', 'aptitude'): if get_bin_path(exe): - self.warnings.append('Found "%s" but %s' % (exe, missing_required_lib('apt'))) + module.warn('Found "%s" but %s' % (exe, missing_required_lib('apt'))) break return we_have_lib @@ -382,9 +382,6 @@ def main(): module.warn('Requested package manager %s was not usable by this module: %s' % (pkgmgr, to_text(e))) continue - for warning in getattr(manager, 'warnings', []): - module.warn(warning) - except Exception as e: if pkgmgr in module.params['manager']: module.warn('Failed to retrieve packages with %s: %s' % (pkgmgr, to_text(e)))