diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2017-10-06 12:52:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-06 12:52:56 -0700 |
commit | ead8e1150015f2bd4dcaee9c68644bc579560990 (patch) | |
tree | 14e852ac9c23653f811b737a6cb93e3d61333b7b | |
parent | deeecfc5dc761a7fb469d24a0741d4f7bd1f7570 (diff) | |
parent | 474ebfc7a69b12d944a708c0f705550dc14f27ff (diff) | |
download | chef-ead8e1150015f2bd4dcaee9c68644bc579560990.tar.gz |
Merge pull request #6476 from b1-systems/master
Add allow_downgrade to zypper_package resource
-rw-r--r-- | lib/chef/provider/package/zypper.rb | 6 | ||||
-rw-r--r-- | lib/chef/resource/zypper_package.rb | 1 | ||||
-rw-r--r-- | spec/unit/provider/package/zypper_spec.rb | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb index 41e8433046..77d619d205 100644 --- a/lib/chef/provider/package/zypper.rb +++ b/lib/chef/provider/package/zypper.rb @@ -103,7 +103,7 @@ class Chef end def install_package(name, version) - zypper_package("install", *options, "--auto-agree-with-licenses", name, version) + zypper_package("install", *options, "--auto-agree-with-licenses", allow_downgrade, name, version) end def upgrade_package(name, version) @@ -147,6 +147,10 @@ class Chef def gpg_checks "--no-gpg-checks" unless new_resource.gpg_check end + + def allow_downgrade + "--oldpackage" if new_resource.allow_downgrade + end end end end diff --git a/lib/chef/resource/zypper_package.rb b/lib/chef/resource/zypper_package.rb index 6c6e308159..20b1a9f25f 100644 --- a/lib/chef/resource/zypper_package.rb +++ b/lib/chef/resource/zypper_package.rb @@ -25,6 +25,7 @@ class Chef provides :package, platform_family: "suse" property :gpg_check, [ TrueClass, FalseClass ], default: lazy { Chef::Config[:zypper_check_gpg] } + property :allow_downgrade, [ true, false ], default: false end end end diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb index b20a548c73..598fedc9fa 100644 --- a/spec/unit/provider/package/zypper_spec.rb +++ b/spec/unit/provider/package/zypper_spec.rb @@ -140,6 +140,14 @@ describe Chef::Provider::Package::Zypper do provider.install_package(["emacs"], ["1.0"]) end + it "setting the property should allow downgrade" do + new_resource.allow_downgrade true + shell_out_expectation!( + "zypper", "--non-interactive", "install", "--auto-agree-with-licenses", "--oldpackage", "emacs=1.0" + ) + provider.install_package(["emacs"], ["1.0"]) + end + it "should add user provided options to the command" do new_resource.options "--user-provided" shell_out_expectation!( |