summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-18 23:48:58 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-18 23:48:58 +0000
commit0316bedca52aab6383ed794439f18bd75e5f611c (patch)
treee926110f35b51affc06e31b52b17d772dbd3c130 /lib/puppet
parent48755b1e2f939d8c5f04310fa1eb8f7d2a595d36 (diff)
downloadpuppet-0316bedca52aab6383ed794439f18bd75e5f611c.tar.gz
puppet-0316bedca52aab6383ed794439f18bd75e5f611c.tar.xz
puppet-0316bedca52aab6383ed794439f18bd75e5f611c.zip
Applying patch by DavidS to fix #711.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2708 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/package/apt.rb2
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb8
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/puppet/provider/package/apt.rb b/lib/puppet/provider/package/apt.rb
index d39ce01f4..b48d71625 100755
--- a/lib/puppet/provider/package/apt.rb
+++ b/lib/puppet/provider/package/apt.rb
@@ -111,6 +111,8 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
def purge
aptget '-y', '-q', 'remove', '--purge', @resource[:name]
+ # workaround a "bug" in apt, that already removed packages are not purged
+ super
end
end
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index 015edb84b..a739f38e2 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -32,7 +32,9 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
hash[:provider] = self.name
- unless hash[:status] == "installed"
+ if hash[:status] == 'not-installed'
+ hash[:ensure] = :purged
+ elsif hash[:status] != "installed"
hash[:ensure] = :absent
end
@@ -102,7 +104,9 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
end
# DPKG can discuss packages that are no longer installed, so allow that.
- if hash[:status] != "installed"
+ if hash[:status] == "not-installed"
+ hash[:ensure] = :purged
+ elsif hash[:status] != "installed"
hash[:ensure] = :absent
end