summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-06 17:47:38 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-06 17:47:38 +0000
commitd0680c8ed3f1e0df864c25a3f21e73383095629b (patch)
tree888da146e0d43ffd658a5e9db49ee67037dc6ed5
parent8b14ef8929bdf612071556e24b42ffa1163ed5b3 (diff)
downloadpuppet-d0680c8ed3f1e0df864c25a3f21e73383095629b.tar.gz
puppet-d0680c8ed3f1e0df864c25a3f21e73383095629b.tar.xz
puppet-d0680c8ed3f1e0df864c25a3f21e73383095629b.zip
Fixing the dpkg querying so that it works for packages that are in "config-files" state rather than just missing entirely. Also fixing logging so that the package version is visible, instead of a dumped object
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2654 980ebf18-57e1-0310-9a29-db15c13687c0
-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.