Issue #8312 has been updated by Felix Frank.
Curses. The command should have read
<pre>
puppet --noop -e 'package { "<name>": ensure => latest, provider =>
zypper }'
----------------------------------------
Bug #8312: zypper ensure latest doesn't work on SLES11 SP1, OpenSUSE 11.4
https://projects.puppetlabs.com/issues/8312
Author: Felix Frank
Status: Unreviewed
Priority: Normal
Assignee:
Category: package
Target version:
Affected Puppet version: 2.6.8
Keywords: zypper, update, latest
Branch:
In the zypper provider, the output of `zypper list-updates` is parsed
incorrectly.
The order of output fields is indeed not "name" | "new version"
but "name" | "old version" | "new version" instead.
The regexp in the provider therefore returns the old version instead of the new
one. I suggest the following patch:
<pre>
--- puppet-2.6.8.orig/lib/puppet/provider/package/zypper.rb 2011-07-07
18:44:15.000000000 +0200
+++ puppet-2.6.8/lib/puppet/provider/package/zypper.rb 2011-07-08
13:10:24.000000000 +0200
@@ -36,7 +36,7 @@
#zypper can only get a list of *all* available packages?
output = zypper "list-updates"
- if output =~ /#{Regexp.escape @resource[:name]}\s*\|\s*([^\s\|]+)/
+ if output =~ /#{Regexp.escape @resource[:name]}\s*\|.*?\|\s*([^\s\|]+)/
return $1
else
# zypper didn't find updates, pretend the current
</pre>
How to reproduce: With an outdated package installed, run
<pre>
puppet --noop -e 'package { "<name>": ensure => latest, provider => zypper }'
</pre>
This will not generate a message about a pending update.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.