diff options
Diffstat (limited to 'lib/chef/provider/package/yum/yum_helper.py')
-rw-r--r-- | lib/chef/provider/package/yum/yum_helper.py | 15 |
1 files changed, 10 insertions, 5 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: |