diff options
author | Thom May <thom@may.lt> | 2018-01-18 14:16:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-18 14:16:44 +0000 |
commit | 5eacab0dd5fceabaf11cf457d43fbca96aa3c982 (patch) | |
tree | 0aa8146f4132dca0aa615730bf8a1e43a0dc157d /lib | |
parent | d0a68f81fcd6fe8abe12dabfaaf16d995a933a76 (diff) | |
parent | 3980045b2b269eba6a7ee66fe9b20f28b4b85b3d (diff) | |
download | chef-5eacab0dd5fceabaf11cf457d43fbca96aa3c982.tar.gz |
Merge pull request #6744 from chef/dnf_yum_repo
Fix yum_repository to properly reload chef's package cache post repo setup
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/provider/yum_repository.rb | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/lib/chef/provider/yum_repository.rb b/lib/chef/provider/yum_repository.rb index 957ee9f0f3..20a7a8e3d2 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,11 +84,16 @@ 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 - block { Chef::Provider::Package::Yum::YumCache.instance.reload } + 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 @@ -95,8 +105,13 @@ class Chef only_if { new_resource.enabled } end - declare_resource(:ruby_block, "yum-cache-reload-#{new_resource.repositoryid}") do - block { Chef::Provider::Package::Yum::YumCache.instance.reload } + 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 :run end end |