summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJames Turnbull <james@lovedthanlost.net>2010-09-23 08:45:26 +1000
committerJames Turnbull <james@lovedthanlost.net>2010-09-23 08:45:26 +1000
commit021d534482dd8edb863cb77d668ac3525362a0a6 (patch)
tree4c2e2a0887341eebd8e2cf49df137b448a7534f6 /lib
parent216f66326381486ad1f63e74fccca0e359ff9a15 (diff)
downloadpuppet-021d534482dd8edb863cb77d668ac3525362a0a6.tar.gz
puppet-021d534482dd8edb863cb77d668ac3525362a0a6.tar.xz
puppet-021d534482dd8edb863cb77d668ac3525362a0a6.zip
Fixed #3707 - rpm, like dpkg-query exits 1 if the package is not installed. Returning
nil in this provider had the effect that on every run, puppet would end up calling yum erase . Returning the correct data structure resolves this. Thanks to Stephen Gran for the patch
Diffstat (limited to 'lib')
-rwxr-xr-xlib/puppet/provider/package/rpm.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/puppet/provider/package/rpm.rb b/lib/puppet/provider/package/rpm.rb
index 72dc260a4..ec6121743 100755
--- a/lib/puppet/provider/package/rpm.rb
+++ b/lib/puppet/provider/package/rpm.rb
@@ -60,7 +60,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
begin
output = rpm(*cmd)
rescue Puppet::ExecutionFailure
- return nil
+ # rpm exits 1 if the package is not found.
+ return {:ensure => :purged, :status => 'missing', :name => @resource[:name], :error => 'ok'}
end
# FIXME: We could actually be getting back multiple packages