summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorDominic Cleal <dcleal@redhat.com>2010-11-29 11:33:57 +0000
committerDominic Cleal <dcleal@redhat.com>2010-11-29 11:33:57 +0000
commit9d63171cf3d3650790bc36c149eef14724487d88 (patch)
treefc1f15fe6b9d09b9ef085498b9b09203fbb3103e /lib/puppet
parentf50fac7a866fa6c1d546226c5c6d8651eb7ffba6 (diff)
downloadpuppet-9d63171cf3d3650790bc36c149eef14724487d88.tar.gz
puppet-9d63171cf3d3650790bc36c149eef14724487d88.tar.xz
puppet-9d63171cf3d3650790bc36c149eef14724487d88.zip
Single package queries made more robust when dealing with pkgutil noise
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/package/pkgutil.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/puppet/provider/package/pkgutil.rb b/lib/puppet/provider/package/pkgutil.rb
index 4914aa4f0..b80cf74ee 100755
--- a/lib/puppet/provider/package/pkgutil.rb
+++ b/lib/puppet/provider/package/pkgutil.rb
@@ -53,11 +53,17 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
next if line =~ /^=+> / # catalog fetch
next if line =~ /\d+:\d+:\d+ URL:/ # wget without -q
- blastsplit(line)
+ parsed = blastsplit(line)
+
+ # When finding one package, ensure we picked up the package line
+ # itself, not any pkgutil noise.
+ next if hash[:justme] and parsed[:name] != hash[:justme]
+
+ parsed
end.reject { |h| h.nil? }
if hash[:justme]
- return list[0]
+ return list[-1]
else
list.reject! { |h|
h[:ensure] == :absent