diff options
-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) |