summaryrefslogtreecommitdiff
path: root/lib/chef
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2020-03-16 13:01:11 -0700
committerGitHub <noreply@github.com>2020-03-16 13:01:11 -0700
commitfca37ce30ea5d6f3f51b88f88c5548a00e5d333b (patch)
tree6ef5d4c33ff55863acfd71f4d1a93f8721f459f6 /lib/chef
parent3c2ad36d660fc0c918e6005f0c018ec8f95021ec (diff)
parent111d34eef9246b87e124a38f9aadc57686896da6 (diff)
downloadchef-fca37ce30ea5d6f3f51b88f88c5548a00e5d333b.tar.gz
Merge pull request #9496 from chef/rhsm_15
Update the rhsm_erata* and rhsm_register resources for RHEL 8
Diffstat (limited to 'lib/chef')
-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