summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/augeas
diff options
context:
space:
mode:
authorDominic Cleal <dcleal@redhat.com>2011-08-06 17:46:20 +0100
committerDominic Cleal <dcleal@redhat.com>2011-08-07 09:45:29 +0100
commit9d09b077a33c1324d53f2725fcf61b529deafb4b (patch)
treee553d3d34e58e69ccc3fbe1a5cec20574c542031 /lib/puppet/provider/augeas
parent2b9b7c114e7c599f88be4f3be70f504add8072f8 (diff)
downloadpuppet-9d09b077a33c1324d53f2725fcf61b529deafb4b.tar.gz
puppet-9d09b077a33c1324d53f2725fcf61b529deafb4b.tar.xz
puppet-9d09b077a33c1324d53f2725fcf61b529deafb4b.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/puppet/provider/augeas')
-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