diff options
-rw-r--r-- | lib/chef/resource/rhsm_errata.rb | 11 | ||||
-rw-r--r-- | lib/chef/resource/rhsm_errata_level.rb | 16 | ||||
-rw-r--r-- | lib/chef/resource/rhsm_register.rb | 25 |
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 |