summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
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