summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb8
-rw-r--r--lib/puppet/type/package.rb2
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index 67ee99fb7..015edb84b 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -17,8 +17,8 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
Puppet.debug "Executing '%s'" % cmd
execpipe(cmd) do |process|
# our regex for matching dpkg output
- regex = %r{^(\S+ +\S+ +\S+) (\S+) (\S*)$}
- fields = [:status, :name, :ensure]
+ regex = %r{^(\S+) +(\S+) +(\S+) (\S+) (\S*)$}
+ fields = [:desired, :error, :status, :name, :ensure]
hash = {}
# now turn each returned line into a package object
@@ -32,6 +32,10 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
hash[:provider] = self.name
+ unless hash[:status] == "installed"
+ hash[:ensure] = :absent
+ end
+
packages << new(hash)
else
Puppet.warning "Failed to match dpkg-query line %s" %
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb
index d6e05c526..a4b2f0e44 100644
--- a/lib/puppet/type/package.rb
+++ b/lib/puppet/type/package.rb
@@ -185,7 +185,7 @@ module Puppet
# This retrieves the current state. LAK: I think this method is unused.
def retrieve
- return @resource.retrieve
+ return provider.properties[:ensure]
end
# Provide a bit more information when logging upgrades.