diff options
author | Tim Smith <tsmith@chef.io> | 2018-01-15 16:36:27 -0800 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2018-01-15 16:57:41 -0800 |
commit | 3a5d4372f5d81078cf1631fafb6ca252e42c1d27 (patch) | |
tree | bbc7803733c7d463fb228b74a664c5859c0e5154 | |
parent | fcd8d778baeeb990a64fe9042164bbd3e1dd5269 (diff) | |
download | chef-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.rb | 19 |
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 |