summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2020-02-27 22:20:10 -0800
committerGitHub <noreply@github.com>2020-02-27 22:20:10 -0800
commit2ecd6322929d203da79def8a1777bebc758e693c (patch)
tree7533b7378dfcb6bcc3a52f4b0add159525d228c4
parentb9b3f95a4e1e9e4f941112f0dfff9502e68a78be (diff)
parent7f3424d49470458c3a956dd7593bc77b83808186 (diff)
downloadchef-2ecd6322929d203da79def8a1777bebc758e693c.tar.gz
Merge pull request #9409 from chef/yum_vs_dnf
Update the rhsm_erata* and rhsm_register resources for RHEL 8
-rw-r--r--lib/chef/resource/rhsm_errata.rb11
-rw-r--r--lib/chef/resource/rhsm_errata_level.rb16
-rw-r--r--lib/chef/resource/rhsm_register.rb25
3 files changed, 35 insertions, 17 deletions
diff --git a/lib/chef/resource/rhsm_errata.rb b/lib/chef/resource/rhsm_errata.rb
index 7442bf99f2..aa08847d10 100644
--- a/lib/chef/resource/rhsm_errata.rb
+++ b/lib/chef/resource/rhsm_errata.rb
@@ -1,5 +1,5 @@
#
-# Copyright:: 2015-2018 Chef Software, Inc.
+# Copyright:: 2015-2020 Chef Software, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,6 +20,7 @@ require_relative "../resource"
class Chef
class Resource
class RhsmErrata < Chef::Resource
+ unified_mode true
resource_name :rhsm_errata
provides(:rhsm_errata) { true }
@@ -36,11 +37,17 @@ class Chef
description "Installs a package for a specific errata ID."
execute "Install errata packages for #{new_resource.errata_id}" do
- command "yum update --advisory #{new_resource.errata_id} -y"
+ command "#{package_manager_command} update --advisory #{new_resource.errata_id} -y"
default_env true
action :run
end
end
+
+ action_class do
+ def package_manager_command
+ node["platform_version"].to_i >= 8 ? "dnf" : "yum"
+ end
+ end
end
end
end
diff --git a/lib/chef/resource/rhsm_errata_level.rb b/lib/chef/resource/rhsm_errata_level.rb
index 2bb0006a38..4ab2d8662d 100644
--- a/lib/chef/resource/rhsm_errata_level.rb
+++ b/lib/chef/resource/rhsm_errata_level.rb
@@ -1,5 +1,5 @@
#
-# Copyright:: 2015-2018 Chef Software, Inc.
+# Copyright:: 2015-2020 Chef Software, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,6 +20,7 @@ require_relative "../resource"
class Chef
class Resource
class RhsmErrataLevel < Chef::Resource
+ unified_mode true
resource_name :rhsm_errata_level
provides(:rhsm_errata_level) { true }
@@ -35,17 +36,22 @@ class Chef
action :install do
description "Install all packages of the specified errata level."
- yum_package "yum-plugin-security" do
- action :install
- only_if { node["platform_version"].to_i == 6 }
+ if rhel6?
+ yum_package "yum-plugin-security"
end
execute "Install any #{new_resource.errata_level} errata" do
- command "yum update --sec-severity=#{new_resource.errata_level.capitalize} -y"
+ command "#{package_manager_command} update --sec-severity=#{new_resource.errata_level.capitalize} -y"
default_env true
action :run
end
end
+
+ action_class do
+ def package_manager_command
+ node["platform_version"].to_i >= 8 ? "dnf" : "yum"
+ end
+ end
end
end
end
diff --git a/lib/chef/resource/rhsm_register.rb b/lib/chef/resource/rhsm_register.rb
index cfaa55124c..afe30e4a3a 100644
--- a/lib/chef/resource/rhsm_register.rb
+++ b/lib/chef/resource/rhsm_register.rb
@@ -1,5 +1,5 @@
#
-# Copyright:: 2015-2018 Chef Software, Inc.
+# Copyright:: 2015-2020 Chef Software, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,6 +21,7 @@ require "shellwords" unless defined?(Shellwords)
class Chef
class Resource
class RhsmRegister < Chef::Resource
+ unified_mode true
resource_name :rhsm_register
provides(:rhsm_register) { true }
@@ -66,18 +67,19 @@ class Chef
package "subscription-manager"
unless new_resource.satellite_host.nil? || registered_with_rhsm?
+ declare_resource(package_resource, "katello-ca-consumer-latest") do
+ options "--nogpgcheck"
+ source "#{Chef::Config[:file_cache_path]}/katello-package.rpm"
+ action :nothing
+ end
+
remote_file "#{Chef::Config[:file_cache_path]}/katello-package.rpm" do
source "http://#{new_resource.satellite_host}/pub/katello-ca-consumer-latest.noarch.rpm"
action :create
- notifies :install, "yum_package[katello-ca-consumer-latest]", :immediately
+ notifies :install, "#{package_resource}[katello-ca-consumer-latest]", :immediately
not_if { katello_cert_rpm_installed? }
end
- yum_package "katello-ca-consumer-latest" do
- options "--nogpgcheck"
- source "#{Chef::Config[:file_cache_path]}/katello-package.rpm"
- action :nothing
- end
file "#{Chef::Config[:file_cache_path]}/katello-package.rpm" do
action :delete
@@ -92,9 +94,8 @@ class Chef
not_if { registered_with_rhsm? } unless new_resource.force
end
- yum_package "katello-agent" do
- action :install
- only_if { new_resource.install_katello_agent && !new_resource.satellite_host.nil? }
+ if new_resource.install_katello_agent && !new_resource.satellite_host.nil?
+ package "katello-agent"
end
end
@@ -117,6 +118,10 @@ class Chef
end
action_class do
+ def package_resource
+ node["platform_version"].to_i >= 8 ? :dnf_package : :yum_package
+ end
+
def registered_with_rhsm?
cmd = Mixlib::ShellOut.new("subscription-manager status", env: { LANG: "en_US" })
cmd.run_command