diff --git a/lib/puppet/provider/logical_volume/lvm.rb b/lib/puppet/provider/logical_volume/lvm.rb index d9eb4853..43e0f3bf 100644 --- a/lib/puppet/provider/logical_volume/lvm.rb +++ b/lib/puppet/provider/logical_volume/lvm.rb @@ -149,7 +149,18 @@ def create def destroy name_escaped = "#{@resource[:volume_group].gsub('-', '--')}-#{@resource[:name].gsub('-', '--')}" - if blkid(path) =~ %r{\bTYPE=\"(swap)\"} + begin + isswap = blkid(path) =~ %r{\bTYPE=\"(swap)\"} + rescue Puppet::ExecutionFailure => detail + ## If blkid returned 2, there is no filesystem present or the file doesn't exist. This should not be a failure. + if detail.message =~ %r{ returned 2:} + Puppet.debug(detail.message) + isswap = false + else + raise + end + end + if isswap swapoff(path) end dmsetup('remove', name_escaped)