summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-03-19 15:46:01 -0700
committerGitHub <noreply@github.com>2018-03-19 15:46:01 -0700
commit4037c281695ca025a6b454ceb1933fe3e9f38cf5 (patch)
tree4a915ed29750f8fa34287d5f22c808ee17bac0c9
parent4e6c7972620e68753946abe109895762a6301efd (diff)
parentc55b41611709ab75192fa79a70fce128b1fbe944 (diff)
downloadchef-4037c281695ca025a6b454ceb1933fe3e9f38cf5.tar.gz
Merge pull request #7009 from chef/fix_zypper
Detect new "automatically" installed string in Zypper
-rw-r--r--lib/chef/provider/package/zypper.rb2
-rw-r--r--spec/unit/provider/package/zypper_spec.rb8
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb
index f12fa270ac..59604c5a33 100644
--- a/lib/chef/provider/package/zypper.rb
+++ b/lib/chef/provider/package/zypper.rb
@@ -41,7 +41,7 @@ class Chef
when /^Version *: (.+) *$/
candidate_version = $1.strip
Chef::Log.debug("#{new_resource} version #{candidate_version}")
- when /^Installed *: Yes *$/
+ when /^Installed *: Yes.*$/ # http://rubular.com/r/9StcAMjOn6
is_installed = true
Chef::Log.debug("#{new_resource} is installed")
when /^Status *: out-of-date \(version (.+) installed\) *$/
diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb
index 598fedc9fa..3f172dc370 100644
--- a/spec/unit/provider/package/zypper_spec.rb
+++ b/spec/unit/provider/package/zypper_spec.rb
@@ -88,6 +88,14 @@ describe Chef::Provider::Package::Zypper do
provider.load_current_resource
end
+ it "should set the installed version if zypper info has one (zypper version >= 1.13.17)" do
+ status = double(:stdout => "Version : 1.0\nInstalled : Yes (automatically)\n", :exitstatus => 0)
+
+ allow(provider).to receive(:shell_out!).and_return(status)
+ expect(current_resource).to receive(:version).with(["1.0"]).and_return(true)
+ provider.load_current_resource
+ end
+
it "should set the candidate version if zypper info has one (zypper version < 1.13.0)" do
status = double(:stdout => "Version: 1.0\nInstalled: No\nStatus: out-of-date (version 0.9 installed)", :exitstatus => 0)