diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2017-10-10 13:36:58 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2017-10-10 13:36:58 -0700 |
commit | a9613c698030518b3faec474fc464a9efb619260 (patch) | |
tree | 5fe2acb9e662124baca1ecd4f247fc2d1581ca1d | |
parent | 5c5073241607cdd6df342677b543a47774867a79 (diff) | |
download | chef-a9613c698030518b3faec474fc464a9efb619260.tar.gz |
only rhel >= 8 and fedora >= 22 get dnf
the shell_out approach to parse the version string from rpm is a bit of
a failed experiment.
the shell_out that gets incurred on every package provider is a bit
terrible for performance.
DNF < 1.00 has also never formally landed in any distribution and its
very difficult at this point to deploy it.
when amazon deploys DNF we should add a version comparison for that.
If this patch causes issues we can go back to adding some form of
`provides :package ... { which("dnf" }`
That will be much faster than having the shell_out().
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r-- | lib/chef/provider/package/dnf.rb | 10 | ||||
-rw-r--r-- | lib/chef/resource/dnf_package.rb | 8 |
2 files changed, 9 insertions, 9 deletions
diff --git a/lib/chef/provider/package/dnf.rb b/lib/chef/provider/package/dnf.rb index a602a9b768..c93f720bf6 100644 --- a/lib/chef/provider/package/dnf.rb +++ b/lib/chef/provider/package/dnf.rb @@ -35,13 +35,13 @@ class Chef use_multipackage_api use_package_name_for_source - provides :package, platform_family: %w{fedora amazon} do - which("dnf") && shell_out("rpm -q dnf").stdout =~ /^dnf-[1-9]/ - end + # all rhel variants >= 8 will use DNF + provides :package, platform_family: "rhel", platform_version: ">= 8" - provides :package, platform_family: %w{rhel}, platform_version: ">= 8" + # fedora >= 22 uses DNF + provides :package, platform: "fedora", platform_version: ">= 22" - provides :dnf_package, os: "linux" + provides :dnf_package # # Most of the magic in this class happens in the python helper script. The ruby side of this diff --git a/lib/chef/resource/dnf_package.rb b/lib/chef/resource/dnf_package.rb index 5713852d6f..34b924b00c 100644 --- a/lib/chef/resource/dnf_package.rb +++ b/lib/chef/resource/dnf_package.rb @@ -29,11 +29,11 @@ class Chef allowed_actions :install, :upgrade, :remove, :purge, :reconfig, :lock, :unlock, :flush_cache - provides :package, platform_family: %w{fedora amazon} do - which("dnf") && shell_out("rpm -q dnf").stdout =~ /^dnf-[1-9]/ - end + # all rhel variants >= 8 will use DNF + provides :package, platform_family: "rhel", platform_version: ">= 8" - provides :package, platform_family: %{rhel}, platform_version: ">= 8" + # fedora >= 22 uses DNF + provides :package, platform: "fedora", platform_version: ">= 22" provides :dnf_package |