diff options
author | Dominic Cleal <dcleal@redhat.com> | 2011-08-06 17:46:20 +0100 |
---|---|---|
committer | Dominic Cleal <dcleal@redhat.com> | 2011-08-06 17:50:22 +0100 |
commit | 344aef91a3589ce3fcc4dfb00df16762ceef81d5 (patch) | |
tree | 3180ae9aef512bcb96b7cc66cf69cc1fb4dc2807 /lib | |
parent | 2185bb2804aeef6b419667951b2157b01404c694 (diff) | |
download | puppet-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.rb | 8 |
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 |