On 01/11/2011 07:59 PM, Robin Lee Powell wrote: > On Tue, Jan 11, 2011 at 10:41:13AM -0800, Daniel Pittman wrote: >> The other thing I keep in mind is that using a 'define' that wraps >> some file and exec operations *is* keeping with the spirit of that >> statement, if not the letter: sure, it defines the type in the >> DSL, but it means that your nodes are referring to high level >> types and concepts, not low level implementation details. >> >> For example, you could rewrite your 'define apache::site' into a >> Ruby type/provider pair and *nothing* would have to change for >> users of it – the fact that it happens to be implemented one way >> or the other is encapsulated. > > I didn't realize it was that clean, actually. Thanks.
In practice, I'd say it's not. Sure, your manifest is equally simple if the custom provider is implemented in DSL. But for users who are in the habit of applying new configs using puppet agent --test, the output will be quite cluttered because all resources that work together to form the provider chirp their respective change notices. On the other hand, if there's an actual piece of ruby code that "knows" how to set a FooResource's "ensure" to "present", the puppet agent will confirm just that. But then, this is all merely cosmetic, and it is by no means unsound to implement your custom providers in DSL. Regards, Felix -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-us...@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.