diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2021-04-30 19:54:46 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2021-04-30 19:54:46 -0700 |
commit | d07af1b74b5b7c2f23232e6c7a43974d90eed98b (patch) | |
tree | 6905abd69bbc8cf5f3cdb7fa19a7e9872a8ac04d | |
parent | 26f173316dafc5d38f4f2a7a4baabb105defb05c (diff) | |
download | chef-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.py | 15 | ||||
-rw-r--r-- | spec/functional/resource/yum_package_spec.rb | 4 |
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) |