diff options
-rwxr-xr-x | lib/puppet/provider/package/dpkg.rb | 8 | ||||
-rw-r--r-- | lib/puppet/type/package.rb | 2 |
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. |