On Fri, 2012-04-06 at 01:26 -0700, Raphaël Pinson wrote: > As of today, the way the Augeas provider in Puppet manages idempotence > can be somehow problematic. The `onlyif` statements can only be > evaluated on the client, so all Augeas resources are generally run on > the client, and whether to run them cannot be easily determined in the > catalog, unless it relies on other resources as dependencies or on > custom facts (possibly using the Augeas ruby library).
Isn't that completely analogous to a package statement that wants to have 'httpd' installed ? There's no way the server can know whether this amounts to a noop or not - it requires checking on the client, and for almost all runs, the statement will amount to a noop. I don't think it's that big a deal. Slightly OT: part of my evil plan with aug_srun was to embed simple logic in the language aug_srun interprets; I am slightly hesitant to do that, because augeas contains way too many interpreters as it is, and inventing little languages is generally a bad idea, but it's just too tempting to allow something like if ! /files/etc/hosts/*[canonical = 'lemon.example.com'] set /files/etc/hosts/01/ipaddr 192.168.0.4 set /files/etc/hosts/01/canonical lemon.example.com set /files/etc/hosts/01/alias lemon set /files/etc/hosts/01/alias meyer end This will require inventing syntax for 'if .. then .. else .. end'; I'd use path expressions as the conditionals and coerce them to bools. > A new aug_to_xml() API call has been added in Augeas 0.10.0 allowing > to export the whole (or part of the) Augeas tree as an XML document. I'd worry that that will have a serious impact on puppet; not just because of the data that needs to cross the wire on every run, but also because of the deserialization overhead on the server. David -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to puppet-dev@googlegroups.com. To unsubscribe from this group, send email to puppet-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.