summaryrefslogtreecommitdiff
path: root/lib/chef/provider/package/dnf.rb
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2016-12-01 12:54:37 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2016-12-13 13:31:50 -0800
commite4b841739a2f8e181593f6bd413ebe9e161ef7d6 (patch)
treec86a64b486a5130f92899a18010fab9c15237370 /lib/chef/provider/package/dnf.rb
parent95aaa87380227a2daf19c8e02bfd474fae0b9e95 (diff)
downloadchef-e4b841739a2f8e181593f6bd413ebe9e161ef7d6.tar.gz
flushcache property code
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Diffstat (limited to 'lib/chef/provider/package/dnf.rb')
-rw-r--r--lib/chef/provider/package/dnf.rb22
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/chef/provider/package/dnf.rb b/lib/chef/provider/package/dnf.rb
index b081c2056f..7f23f8a935 100644
--- a/lib/chef/provider/package/dnf.rb
+++ b/lib/chef/provider/package/dnf.rb
@@ -118,6 +118,10 @@ class Chef
restart # FIXME: make flushcache work + not leak memory
end
+ def flushcache_installed
+ restart # FIXME: make flushcache work + not leak memory
+ end
+
def restart
reap
start
@@ -149,6 +153,8 @@ class Chef
end
def load_current_resource
+ flushcache if new_resource.flush_cache[:before]
+
@current_resource = Chef::Resource::DnfPackage.new(new_resource.name)
current_resource.package_name(new_resource.package_name)
@@ -172,7 +178,7 @@ class Chef
def install_package(names, versions)
resolved_names = names.map { |name| available_version(name).to_s }
dnf(new_resource.options, "-y install", resolved_names)
- flushcache
+ flushcache_after
end
# dnf upgrade does not work on uninstalled packaged, while install will upgrade
@@ -181,7 +187,7 @@ class Chef
def remove_package(names, versions)
resolved_names = names.map { |name| installed_version(name).to_s }
dnf(new_resource.options, "-y remove", resolved_names)
- flushcache
+ flushcache_after
end
alias_method :purge_package, :remove_package
@@ -192,6 +198,14 @@ class Chef
private
+ def flushcache_after
+ if new_resource.flush_cache[:after]
+ flushcache
+ else
+ flushcache_installed
+ end
+ end
+
# @returns Array<Version>
def available_version(package_name)
@available_version ||= {}
@@ -210,6 +224,10 @@ class Chef
python_helper.flushcache
end
+ def flushcache_installed
+ python_helper.flushcache_installed
+ end
+
def dnf(*args)
shell_out_with_timeout!(a_to_s("dnf", *args))
end