Hello,
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). Here is a proposition to improve this, by making the Augeas tree available on the Puppet server during catalog compilation. 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. The idea is the following: * Before compiling the catalog, make a request to retrieve the Augeas tree as XML (using facter or another system); * On the server, reinject the XML in a local Augeas instance (using a yet-to-code aug_from_xml() call); * Evaluate the onlyif statements (or a new kind of statement) using this local copy of the client's Augeas tree; * Calculate the dependencies properly (in fact, the local Augeas tree could then be used pretty much as a fact provider for any kind of resource); How could this be best implemented in Puppet? Are there any drawbacks to doing this? Raphaël -- 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.