summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDominic Cleal <dcleal@redhat.com>2011-08-06 17:46:20 +0100
committerDominic Cleal <dcleal@redhat.com>2011-08-06 17:50:22 +0100
commit344aef91a3589ce3fcc4dfb00df16762ceef81d5 (patch)
tree3180ae9aef512bcb96b7cc66cf69cc1fb4dc2807 /lib
parent2185bb2804aeef6b419667951b2157b01404c694 (diff)
downloadpuppet-344aef91a3589ce3fcc4dfb00df16762ceef81d5.tar.gz
puppet-344aef91a3589ce3fcc4dfb00df16762ceef81d5.tar.xz
puppet-344aef91a3589ce3fcc4dfb00df16762ceef81d5.zip
(#8808) Fail Augeas resource when unable to save changes
Raise a failure when Augeas changes cannot be saved (due to invalid layout of the tree, permissions etc). Fixes a regression.
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/provider/augeas/augeas.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/puppet/provider/augeas/augeas.rb b/lib/puppet/provider/augeas/augeas.rb
index 95142568e..eb9c69ac8 100644
--- a/lib/puppet/provider/augeas/augeas.rb
+++ b/lib/puppet/provider/augeas/augeas.rb
@@ -290,8 +290,10 @@ Puppet::Type.type(:augeas).provide(:augeas) do
set_augeas_save_mode(SAVE_NEWFILE)
do_execute_changes
save_result = @aug.save
+ fail("Save failed with return code #{save_result}") unless save_result
+
saved_files = @aug.match("/augeas/events/saved")
- if save_result and saved_files.size > 0
+ if saved_files.size > 0
root = resource[:root].sub(/^\/$/, "")
saved_files.each do |key|
saved_file = @aug.get(key).to_s.sub(/^\/files/, root)
@@ -305,13 +307,13 @@ Puppet::Type.type(:augeas).provide(:augeas) do
debug("Files changed, should execute")
return_value = true
else
- debug("Skipping because no files were changed or save failed")
+ debug("Skipping because no files were changed")
return_value = false
end
end
end
ensure
- if not return_value or resource.noop?
+ if not return_value or resource.noop? or not save_result
close_augeas
end
end