Issue #13259 has been updated by Tim Bishop.
Hi Dominic, thanks for looking at this issue. Here's the augtool output: <pre> % augtool ls /files boot/ = (none) etc/ = (none) % </pre> I've patched my augeas with the fix you committed in the Augeas git and I can confirm the issue is fixed. So yes, I now agree with you. Since it's a bug in Augeas it makes sense to fix it there and add a workaround to Puppet for systems with an older Augeas on it. Any idea on an ETA for the next Augeas release? I'll see if the FreeBSD port maintainer will apply you fix to the port in the interim which will resolve the issue for me. Thanks again. ---------------------------------------- Bug #13259: Augeas error: Could not evaluate: No such file or directory https://projects.puppetlabs.com/issues/13259#change-58007 Author: Tim Bishop Status: Unreviewed Priority: Normal Assignee: Category: augeas Target version: Affected Puppet version: 2.7.12 Keywords: Augeas FreeBSD Branch: I have a problem with Puppet on FreeBSD (I haven't confirmed if the issue is repeatable on another OS). The relevant software versions are: * puppet-2.7.12 * augeas-0.10.0 * rubygem-ruby-augeas-0.4.1 My test manifest is: <pre> augeas { '/etc/ssh/sshd_config': context => '/files/etc/ssh/sshd_config', changes => [ "set Port 2222", "set PermitRootLogin no", ], } </pre> And I apply this as follows, with debugging enabled: <pre> # puppet apply -v -d augtest.pp ... debug: Augeas[/etc/ssh/sshd_config](provider=augeas): Opening augeas with root /, lens path , flags 0 debug: Augeas[/etc/ssh/sshd_config](provider=augeas): Augeas version 0.10.0 is installed debug: Augeas[/etc/ssh/sshd_config](provider=augeas): Will attempt to save and only run if files changed debug: Augeas[/etc/ssh/sshd_config](provider=augeas): sending command 'set' with params ["/files/etc/ssh/sshd_config/Port", "2222"] debug: Augeas[/etc/ssh/sshd_config](provider=augeas): sending command 'set' with params ["/files/etc/ssh/sshd_config/PermitRootLogin", "no"] notice: Augeas[/etc/ssh/sshd_config](provider=augeas): saved_file: /etc/ssh/sshd_config notice: Augeas[/etc/ssh/sshd_config](provider=augeas): saved_file: /etc/ssh/sshd_config err: /Stage[main]//Augeas[/etc/ssh/sshd_config]: Could not evaluate: No such file or directory - /etc/ssh/sshd_config.augnew ... </pre> There's two additional lines there. I added the following to the augeas provider: <pre> --- augeas.rb.orig 2012-03-20 20:01:57.000000000 +0000 +++ augeas.rb 2012-03-20 20:02:28.000000000 +0000 @@ -297,10 +297,11 @@ saved_files = @aug.match("/augeas/events/saved") if saved_files.size > 0 root = resource[:root].sub(/^\/$/, "") saved_files.each do |key| saved_file = @aug.get(key).sub(/^\/files/, root) + notice("saved_file: " + saved_file) if Puppet[:show_diff] notice "\n" + diff(saved_file, saved_file + ".augnew") end File.delete(saved_file + ".augnew") end </pre> So the reason for the problem is that Puppet does a diff of the file, removes it, and then attempts to diff it again. The root cause is unknown, but it's obviously not right that the file appears twice in saved_files. Issue #13204 offers a fix, but it feels like it's masking the underlying issue. I've tried it, and not surprisingly the fix works. I'm happy to help debug this where I can. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
