Replies inline; I've butchered the quoting but will try to keep the
attribution correct.
[John Bollinger] Part of my premise here is that you cannot reasonably
> infer from a class declaration alone -- regardless of the form of the
> declaration -- whether its declaring class intends to contain the declared
> one. There has to be something to distinguish the contained case from the
> non-contained one.
This was a valuable piece of insight, thanks.
[Luke] Maybe PuppetDB makes this all irrelevant because it actually builds
> a graph that contains both, and makes that graph easily accessible, but… if
> it's good for PuppetDB, why isn't it good for Puppet?
>
We absolutely plan to consolidate down to one catalog format, which should
be the one used by PuppetDB. I think the graph refactoring work you'd like
to see is desirable but should come as a byproduct of writing new code to
produce and consume these, rather than trying to shoehorn those changes
onto the anchor pattern work.
> [Andy] Here are the possibilities:
>
* resource like syntax for classes expresses containment:
>
> class container { class { contained: parameter => value } }
>
> * a function declares the class *and* expresses containment
>
> class container { contain(contained, { parameter => value }) }
>
> * a function expresses containment, but does not declare the class
>
> class container { class { contained: parameter => value }
> contain(contained) }
>
> * a new "resource type" expresses containment
>
> class container { contain { contained: parameter => value } }
>
I'm most in favour of number 3 here, a function to express the containment
as a separate thing to declaring the class.
[Nick Lewis] A 'contain' function was the decision we came to last time I
> was involved in a conversation about this. That turned into ticket #13045,
> which was closed with the decision that it should be fixed in Puppet
>
> [Luke] I'm in favor of it as a simple, optional, backward-compatible fix.
> Basically, if you're using the anchor pattern now, you can use the contain
> function instead, and properly represents what's going on.
>
+1
--eric0
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.