Issue #13259 has been updated by Tim Bishop. Affected Puppet version deleted (2.7.12rc2)
I've done some tests on another FreeBSD machine running Puppet 2.7.10. It has the same versions of augeas and the ruby library. On that machine it functioned correctly. So it would appear to be a regression between 2.7.10 and 2.7.12. ---------------------------------------- Bug #13259: Augeas error: Could not evaluate: No such file or directory https://projects.puppetlabs.com/issues/13259#change-57706 Author: Tim Bishop Status: Unreviewed Priority: Normal Assignee: Category: augeas Target version: Affected Puppet version: 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.
