summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-01-15 16:36:27 -0800
committerTim Smith <tsmith@chef.io>2018-01-15 16:57:41 -0800
commit3a5d4372f5d81078cf1631fafb6ca252e42c1d27 (patch)
treebbc7803733c7d463fb228b74a664c5859c0e5154
parentfcd8d778baeeb990a64fe9042164bbd3e1dd5269 (diff)
downloadchef-3a5d4372f5d81078cf1631fafb6ca252e42c1d27.tar.gz
Fix yum_repository to properly reload chef's package cache post repo setup
Without this you cannot install a package that is in that repository. We already did this for the yum cache, but not for the DNF cache. Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/chef/provider/yum_repository.rb19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/chef/provider/yum_repository.rb b/lib/chef/provider/yum_repository.rb
index 957ee9f0f3..a97bd94e95 100644
--- a/lib/chef/provider/yum_repository.rb
+++ b/lib/chef/provider/yum_repository.rb
@@ -47,7 +47,7 @@ class Chef
if new_resource.make_cache
notifies :run, "execute[yum clean metadata #{new_resource.repositoryid}]", :immediately if new_resource.clean_metadata || new_resource.clean_headers
notifies :run, "execute[yum-makecache-#{new_resource.repositoryid}]", :immediately
- notifies :create, "ruby_block[yum-cache-reload-#{new_resource.repositoryid}]", :immediately
+ notifies :create, "ruby_block[package-cache-reload-#{new_resource.repositoryid}]", :immediately
end
end
@@ -63,9 +63,14 @@ class Chef
only_if { new_resource.enabled }
end
- # reload internal Chef yum cache
- declare_resource(:ruby_block, "yum-cache-reload-#{new_resource.repositoryid}") do
- block { Chef::Provider::Package::Yum::YumCache.instance.reload }
+ # reload internal Chef yum/dnf cache
+ declare_resource(:ruby_block, "package-cache-reload-#{new_resource.repositoryid}") do
+ if ( platform?("fedora") && node["platform_version"].to_i >= 22 ) ||
+ ( platform_family?("rhel") && node["platform_version"].to_i >= 8 )
+ block { Chef::Provider::Package::Dnf::PythonHelper.instance.restart }
+ else
+ block { Chef::Provider::Package::Yum::YumCache.instance.reload }
+ end
action :nothing
end
end
@@ -79,10 +84,10 @@ class Chef
declare_resource(:file, "/etc/yum.repos.d/#{new_resource.repositoryid}.repo") do
action :delete
- notifies :create, "ruby_block[yum-cache-reload-#{new_resource.repositoryid}]", :immediately
+ notifies :create, "ruby_block[package-cache-reload-#{new_resource.repositoryid}]", :immediately
end
- declare_resource(:ruby_block, "yum-cache-reload-#{new_resource.repositoryid}") do
+ declare_resource(:ruby_block, "package-cache-reload-#{new_resource.repositoryid}") do
block { Chef::Provider::Package::Yum::YumCache.instance.reload }
action :nothing
end
@@ -95,7 +100,7 @@ class Chef
only_if { new_resource.enabled }
end
- declare_resource(:ruby_block, "yum-cache-reload-#{new_resource.repositoryid}") do
+ declare_resource(:ruby_block, "package-cache-reload-#{new_resource.repositoryid}") do
block { Chef::Provider::Package::Yum::YumCache.instance.reload }
action :run
end