From be0d28a4ace99d414466aaa09e4dfd56dbcc4efb Mon Sep 17 00:00:00 2001 From: David Wittman Date: Fri, 27 Mar 2015 11:07:51 -0500 Subject: [PATCH] Set disabled repos before enabled repos The ordering of disabling/enabling yum repositories matters, and the yum module was mixing and matching the order. Specifically, when yum-utils isn't installed, the codepath which uses the yum python module was incorrectly ordering enabling and disabling. The preferred order is to disable repositories and then enable them to prevent clobbering. This was previously discussed in ansible/ansible#5255 and incompletely addressed in 0cca4a3. --- lib/ansible/modules/packaging/os/yum.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/ansible/modules/packaging/os/yum.py b/lib/ansible/modules/packaging/os/yum.py index 478238f88c..e21034d59b 100644 --- a/lib/ansible/modules/packaging/os/yum.py +++ b/lib/ansible/modules/packaging/os/yum.py @@ -187,10 +187,10 @@ def is_installed(module, repoq, pkgspec, conf_file, qf=def_qf, en_repos=[], dis_ pkgs = [] try: my = yum_base(conf_file) - for rid in en_repos: - my.repos.enableRepo(rid) for rid in dis_repos: my.repos.disableRepo(rid) + for rid in en_repos: + my.repos.enableRepo(rid) e,m,u = my.rpmdb.matchPackageNames([pkgspec]) pkgs = e + m @@ -226,10 +226,10 @@ def is_available(module, repoq, pkgspec, conf_file, qf=def_qf, en_repos=[], dis_ pkgs = [] try: my = yum_base(conf_file) - for rid in en_repos: - my.repos.enableRepo(rid) for rid in dis_repos: my.repos.disableRepo(rid) + for rid in en_repos: + my.repos.enableRepo(rid) e,m,u = my.pkgSack.matchPackageNames([pkgspec]) pkgs = e + m @@ -269,10 +269,10 @@ def is_update(module, repoq, pkgspec, conf_file, qf=def_qf, en_repos=[], dis_rep try: my = yum_base(conf_file) - for rid in en_repos: - my.repos.enableRepo(rid) for rid in dis_repos: my.repos.disableRepo(rid) + for rid in en_repos: + my.repos.enableRepo(rid) pkgs = my.returnPackagesByDep(pkgspec) + my.returnInstalledPackagesByDep(pkgspec) if not pkgs: @@ -313,10 +313,10 @@ def what_provides(module, repoq, req_spec, conf_file, qf=def_qf, en_repos=[], d pkgs = [] try: my = yum_base(conf_file) - for rid in en_repos: - my.repos.enableRepo(rid) for rid in dis_repos: my.repos.disableRepo(rid) + for rid in en_repos: + my.repos.enableRepo(rid) pkgs = my.returnPackagesByDep(req_spec) + my.returnInstalledPackagesByDep(req_spec) if not pkgs: