summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2021-04-30 19:54:46 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2021-04-30 19:54:46 -0700
commitd07af1b74b5b7c2f23232e6c7a43974d90eed98b (patch)
tree6905abd69bbc8cf5f3cdb7fa19a7e9872a8ac04d
parent26f173316dafc5d38f4f2a7a4baabb105defb05c (diff)
downloadchef-lcg/yum-disablerepos.tar.gz
close rpmdb earlylcg/yum-disablerepos
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r--lib/chef/provider/package/yum/yum_helper.py15
-rw-r--r--spec/functional/resource/yum_package_spec.rb4
2 files changed, 11 insertions, 8 deletions
diff --git a/lib/chef/provider/package/yum/yum_helper.py b/lib/chef/provider/package/yum/yum_helper.py
index 7e6f193054..70667f8f74 100644
--- a/lib/chef/provider/package/yum/yum_helper.py
+++ b/lib/chef/provider/package/yum/yum_helper.py
@@ -181,6 +181,16 @@ try:
except ValueError, e:
raise RuntimeError("bad json parse")
+ # handle closing the rpmdb early before we open it
+ # so that we don't reopen it on successive close_rpmdb calls
+ if command['action'] == "close_rpmdb":
+ if base is not None:
+ base.closeRpmDB()
+ base = None
+ outpipe.write('nil nil nil\n')
+ outpipe.flush()
+ continue
+
if base is None:
base = yum.YumBase()
@@ -192,11 +202,6 @@ try:
versioncompare(command['versions'])
elif command['action'] == "installonlypkgs":
install_only_packages(base, command['package'])
- elif command['action'] == "close_rpmdb":
- base.closeRpmDB()
- base = None
- outpipe.write('nil nil nil\n')
- outpipe.flush()
else:
raise RuntimeError("bad command")
finally:
diff --git a/spec/functional/resource/yum_package_spec.rb b/spec/functional/resource/yum_package_spec.rb
index bcf592918d..2cc71de852 100644
--- a/spec/functional/resource/yum_package_spec.rb
+++ b/spec/functional/resource/yum_package_spec.rb
@@ -29,9 +29,7 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
# other in order to minimize calling flush_cache a half dozen times per test.
def flush_cache
- yum = Chef::Resource::YumPackage.new("shouldnt-matter", run_context)
- yum.options("--nogpgcheck --disablerepo=* --enablerepo=chef-yum-localtesting")
- yum.run_action(:flush_cache)
+ Chef::Resource::YumPackage.new("shouldnt-matter", run_context).run_action(:flush_cache)
end
def preinstall(*rpms)