summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Hain <shain@chef.io>2017-07-03 13:03:46 -0700
committerScott Hain <shain@chef.io>2017-07-03 13:46:11 -0700
commit28bae297c9a83a566fa20aea212e3b81118c4bb1 (patch)
treec2ff6dc4ca7116488248d0283326c7ae70be7046
parente419d7f0eb0c494a0a2f5d5963eac6fb35153bac (diff)
downloadchef-shain/enable_zypper_options.tar.gz
Enable zypper package optionsshain/enable_zypper_options
Signed-off-by: Scott Hain <shain@chef.io>
-rw-r--r--lib/chef/provider/package/zypper.rb10
-rw-r--r--spec/unit/provider/package/zypper_spec.rb43
2 files changed, 48 insertions, 5 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb
index 7b8fd6c426..41e8433046 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", "--auto-agree-with-licenses", name, version)
+ zypper_package("install", *options, "--auto-agree-with-licenses", name, version)
end
def upgrade_package(name, version)
@@ -112,19 +112,19 @@ class Chef
end
def remove_package(name, version)
- zypper_package("remove", name, version)
+ zypper_package("remove", *options, name, version)
end
def purge_package(name, version)
- zypper_package("remove", "--clean-deps", name, version)
+ zypper_package("remove", *options, "--clean-deps", name, version)
end
def lock_package(name, version)
- zypper_package("addlock", name, version)
+ zypper_package("addlock", *options, name, version)
end
def unlock_package(name, version)
- zypper_package("removelock", name, version)
+ zypper_package("removelock", *options, name, version)
end
private
diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb
index f3c31dc730..b20a548c73 100644
--- a/spec/unit/provider/package/zypper_spec.rb
+++ b/spec/unit/provider/package/zypper_spec.rb
@@ -139,6 +139,14 @@ describe Chef::Provider::Package::Zypper do
)
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!(
+ "zypper", "--non-interactive", "install", "--user-provided", "--auto-agree-with-licenses", "emacs=1.0"
+ )
+ provider.install_package(["emacs"], ["1.0"])
+ end
end
describe "upgrade_package" do
@@ -162,6 +170,13 @@ describe Chef::Provider::Package::Zypper do
)
provider.upgrade_package(["emacs"], ["1.0"])
end
+ it "should add user provided options to the command" do
+ new_resource.options "--user-provided"
+ shell_out_expectation!(
+ "zypper", "--non-interactive", "install", "--user-provided", "--auto-agree-with-licenses", "emacs=1.0"
+ )
+ provider.upgrade_package(["emacs"], ["1.0"])
+ end
end
describe "remove_package" do
@@ -196,6 +211,13 @@ describe Chef::Provider::Package::Zypper do
)
provider.remove_package(["emacs"], ["1.0"])
end
+ it "should add user provided options to the command" do
+ new_resource.options "--user-provided"
+ shell_out_expectation!(
+ "zypper", "--non-interactive", "remove", "--user-provided", "emacs=1.0"
+ )
+ provider.remove_package(["emacs"], ["1.0"])
+ end
end
end
@@ -220,6 +242,13 @@ describe Chef::Provider::Package::Zypper do
)
provider.purge_package(["emacs"], ["1.0"])
end
+ it "should add user provided options to the command" do
+ new_resource.options "--user-provided"
+ shell_out_expectation!(
+ "zypper", "--non-interactive", "remove", "--user-provided", "--clean-deps", "emacs=1.0"
+ )
+ provider.purge_package(["emacs"], ["1.0"])
+ end
end
describe "lock_package" do
@@ -236,6 +265,13 @@ describe Chef::Provider::Package::Zypper do
)
provider.lock_package(["emacs"], [nil])
end
+ it "should add user provided options to the command" do
+ new_resource.options "--user-provided"
+ shell_out_expectation!(
+ "zypper", "--non-interactive", "addlock", "--user-provided", "emacs"
+ )
+ provider.lock_package(["emacs"], [nil])
+ end
end
describe "unlock_package" do
@@ -252,6 +288,13 @@ describe Chef::Provider::Package::Zypper do
)
provider.unlock_package(["emacs"], [nil])
end
+ it "should add user provided options to the command" do
+ new_resource.options "--user-provided"
+ shell_out_expectation!(
+ "zypper", "--non-interactive", "removelock", "--user-provided", "emacs"
+ )
+ provider.unlock_package(["emacs"], [nil])
+ end
end
describe "on an older zypper" do