diff options
author | dheerajd-msys <dheeraj.dubey@msystechnologies.com> | 2018-08-16 16:23:41 +0530 |
---|---|---|
committer | dheerajd-msys <dheeraj.dubey@msystechnologies.com> | 2018-09-25 11:36:10 +0530 |
commit | 7b0adfc8f0b6507919f201f5314b4be5b794a1ba (patch) | |
tree | f240904149fd6e54a870d24c00f954958754792f | |
parent | 460ab7fd688a50c3b0812a4258955d5a32017824 (diff) | |
download | chef-7b0adfc8f0b6507919f201f5314b4be5b794a1ba.tar.gz |
Signed-off-by: dheerajd-msys <dheeraj.dubey@msystechnologies.com>
pick 3cf01debd fix for global options property
pick af5cddaca added global_options property
pick 7cc82d185 functional test added
pick 3684cdb58 add suse rspec testing
-rw-r--r-- | lib/chef/provider/package/zypper.rb | 20 | ||||
-rw-r--r-- | lib/chef/resource/zypper_package.rb | 2 | ||||
-rw-r--r-- | spec/unit/provider/package/zypper_spec.rb | 43 |
3 files changed, 57 insertions, 8 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb index 39abaabfac..2a333c4f5f 100644 --- a/lib/chef/provider/package/zypper.rb +++ b/lib/chef/provider/package/zypper.rb @@ -109,7 +109,7 @@ class Chef end def install_package(name, version) - zypper_package("install", *options, allow_downgrade, name, version) + zypper_package("install", global_options, *options, "--auto-agree-with-licenses", allow_downgrade, name, version) end def upgrade_package(name, version) @@ -118,19 +118,19 @@ class Chef end def remove_package(name, version) - zypper_package("remove", *options, name, version) + zypper_package("remove", global_options, *options, name, version) end def purge_package(name, version) - zypper_package("remove", *options, "--clean-deps", name, version) + zypper_package("remove", global_options, *options, "--clean-deps", name, version) end def lock_package(name, version) - zypper_package("addlock", *options, name, version) + zypper_package("addlock", global_options, *options, name, version) end def unlock_package(name, version) - zypper_package("removelock", *options, name, version) + zypper_package("removelock", global_options, *options, name, version) end private @@ -141,12 +141,12 @@ class Chef end end - def zypper_package(command, *options, names, versions) + def zypper_package(command, global_options, *options, names, versions) zipped_names = zip(names, versions) if zypper_version < 1.0 - shell_out!("zypper", gpg_checks, command, *options, "-y", names) + shell_out!("zypper", global_options, gpg_checks, command, *options, "-y", names) else - shell_out!("zypper", *options,"--non-interactive", gpg_checks, command, "--auto-agree-with-licenses", zipped_names) + shell_out!("zypper", global_options, "--non-interactive", gpg_checks, command, *options, zipped_names) end end @@ -157,6 +157,10 @@ class Chef def allow_downgrade "--oldpackage" if new_resource.allow_downgrade end + + def global_options + new_resource.global_options if new_resource.global_options + end end end end diff --git a/lib/chef/resource/zypper_package.rb b/lib/chef/resource/zypper_package.rb index 6caa14c1a3..9dd9a0b7b9 100644 --- a/lib/chef/resource/zypper_package.rb +++ b/lib/chef/resource/zypper_package.rb @@ -34,6 +34,8 @@ class Chef property :allow_downgrade, [ TrueClass, FalseClass ], description: "Allow downgrading a package to satisfy requested version requirements.", default: false, introduced: "13.6" + + property :global_options, [ String, Array ], coerce: proc { |x| x.is_a?(String) ? x.shellsplit : x } end end end diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb index 6795f9e051..d51c12e8f1 100644 --- a/spec/unit/provider/package/zypper_spec.rb +++ b/spec/unit/provider/package/zypper_spec.rb @@ -163,6 +163,14 @@ describe Chef::Provider::Package::Zypper do ) provider.install_package(["emacs"], ["1.0"]) end + + it "should add user provided global options" do + new_resource.global_options "--user-provided" + shell_out_expectation!( + "zypper", "--user-provided", "--non-interactive", "install", "--auto-agree-with-licenses", "emacs=1.0" + ) + provider.install_package(["emacs"], ["1.0"]) + end end describe "upgrade_package" do @@ -193,6 +201,13 @@ describe Chef::Provider::Package::Zypper do ) provider.upgrade_package(["emacs"], ["1.0"]) end + it "should add user provided global options" do + new_resource.global_options "--user-provided" + shell_out_expectation!( + "zypper", "--user-provided", "--non-interactive", "install", "--auto-agree-with-licenses", "emacs=1.0" + ) + provider.install_package(["emacs"], ["1.0"]) + end end describe "remove_package" do @@ -234,6 +249,13 @@ describe Chef::Provider::Package::Zypper do ) provider.remove_package(["emacs"], ["1.0"]) end + it "should add user provided global options" do + new_resource.global_options "--user-provided" + shell_out_expectation!( + "zypper", "--user-provided", "--non-interactive", "remove", "emacs=1.0" + ) + provider.remove_package(["emacs"], ["1.0"]) + end end end @@ -265,6 +287,13 @@ describe Chef::Provider::Package::Zypper do ) provider.purge_package(["emacs"], ["1.0"]) end + it "should add user provided global options" do + new_resource.global_options "--user-provided" + shell_out_expectation!( + "zypper", "--user-provided", "--non-interactive", "remove", "--clean-deps", "emacs=1.0" + ) + provider.purge_package(["emacs"], ["1.0"]) + end end describe "action_lock" do @@ -320,6 +349,13 @@ describe Chef::Provider::Package::Zypper do ) provider.lock_package(["emacs"], [nil]) end + it "should add user provided global options" do + new_resource.global_options "--user-provided" + shell_out_expectation!( + "zypper", "--user-provided", "--non-interactive", "addlock", "emacs" + ) + provider.lock_package(["emacs"], [nil]) + end end describe "action_unlock" do @@ -374,6 +410,13 @@ describe Chef::Provider::Package::Zypper do ) provider.unlock_package(["emacs"], [nil]) end + it "should add user provided global options" do + new_resource.global_options "--user-provided" + shell_out_expectation!( + "zypper", "--user-provided", "--non-interactive", "removelock", "emacs" + ) + provider.unlock_package(["emacs"], [nil]) + end end describe "on an older zypper" do |