summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2021-06-05 15:56:51 -0700
committerTim Smith <tsmith@chef.io>2021-07-26 19:03:52 -0700
commit1c4f6595f9014e57129761ea45b690dc9ac26a3e (patch)
tree26f91cc2668af93e12165c6318c8b5adf42ca08c /lib
parentc75e8810ae3b82745ec2000b8cba42deb02e2e46 (diff)
downloadchef-1c4f6595f9014e57129761ea45b690dc9ac26a3e.tar.gz
Cleanup the yum_repository resource
Update the template to use the "Chef Infra" branding Don't use declare_resource DRY up the cache reload code Use our platform helpers to simplify logic Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/provider/support/yum_repo.erb2
-rw-r--r--lib/chef/provider/yum_repository.rb56
2 files changed, 22 insertions, 36 deletions
diff --git a/lib/chef/provider/support/yum_repo.erb b/lib/chef/provider/support/yum_repo.erb
index 7a55c1b7d2..15aa03af47 100644
--- a/lib/chef/provider/support/yum_repo.erb
+++ b/lib/chef/provider/support/yum_repo.erb
@@ -1,4 +1,4 @@
-# This file was generated by Chef
+# This file was generated by Chef Infra
# Do NOT modify this file by hand.
[<%= @config.repositoryid %>]
diff --git a/lib/chef/provider/yum_repository.rb b/lib/chef/provider/yum_repository.rb
index b0dfe20f1b..53a48844d0 100644
--- a/lib/chef/provider/yum_repository.rb
+++ b/lib/chef/provider/yum_repository.rb
@@ -17,7 +17,6 @@
#
require_relative "../resource"
-require_relative "../dsl/declare_resource"
require_relative "../mixin/which"
require_relative "noop"
@@ -33,7 +32,7 @@ class Chef
def load_current_resource; end
action :create do
- declare_resource(:template, ::File.join(new_resource.reposdir, "#{new_resource.repositoryid}.repo")) do
+ template ::File.join(new_resource.reposdir, "#{new_resource.repositoryid}.repo") do
if template_available?(new_resource.source)
source new_resource.source
else
@@ -46,78 +45,65 @@ 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[package-cache-reload-#{new_resource.repositoryid}]", :immediately
+ notifies :run, "ruby_block[package-cache-reload-#{new_resource.repositoryid}]", :immediately
end
end
- declare_resource(:execute, "yum clean metadata #{new_resource.repositoryid}") do
+ execute "yum clean metadata #{new_resource.repositoryid}" do
command "yum clean metadata --disablerepo=* --enablerepo=#{new_resource.repositoryid}"
action :nothing
end
# get the metadata for this repo only
- declare_resource(:execute, "yum-makecache-#{new_resource.repositoryid}") do
+ execute "yum-makecache-#{new_resource.repositoryid}" do
command "yum -q -y makecache --disablerepo=* --enablerepo=#{new_resource.repositoryid}"
action :nothing
only_if { new_resource.enabled }
end
- # 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
+ package_cache_reload_resource
end
action :delete do
# clean the repo cache first
- declare_resource(:execute, "yum clean all #{new_resource.repositoryid}") do
+ execute "yum clean all #{new_resource.repositoryid}" do
command "yum clean all --disablerepo=* --enablerepo=#{new_resource.repositoryid}"
only_if "yum repolist all | grep -P '^#{new_resource.repositoryid}([ \t]|$)'"
end
- declare_resource(:file, ::File.join(new_resource.reposdir, "#{new_resource.repositoryid}.repo")) do
+ file ::File.join(new_resource.reposdir, "#{new_resource.repositoryid}.repo") do
action :delete
- notifies :create, "ruby_block[package-cache-reload-#{new_resource.repositoryid}]", :immediately
+ notifies :run, "ruby_block[package-cache-reload-#{new_resource.repositoryid}]", :immediately
end
- 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
+ package_cache_reload_resource
end
action :makecache do
- declare_resource(:execute, "yum-makecache-#{new_resource.repositoryid}") do
+ execute "yum-makecache-#{new_resource.repositoryid}" do
command "yum -q -y makecache --disablerepo=* --enablerepo=#{new_resource.repositoryid}"
action :run
only_if { new_resource.enabled }
+ notifies :run, "ruby_block[package-cache-reload-#{new_resource.repositoryid}]", :immediately
end
- 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 )
+ package_cache_reload_resource
+ end
+
+ alias_method :action_add, :action_create
+ alias_method :action_remove, :action_delete
+
+ def package_cache_reload_resource
+ ruby_block "package-cache-reload-#{new_resource.repositoryid}" do
+ if ( fedora? && node["platform_version"].to_i >= 22 ) || ( 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
+ action :nothing
end
end
- alias_method :action_add, :action_create
- alias_method :action_remove, :action_delete
-
def template_available?(path)
!path.nil? && run_context.has_template_in_cookbook?(new_resource.cookbook_name, path)
end