On 08/02/14 00:37, Peter Meier wrote: > On 02/07/2014 08:26 PM, John Bollinger wrote: > > >> On Friday, February 7, 2014 3:57:00 AM UTC-6, Brice Figureau >> wrote: > >> In this specific bug, I'm wondering if we really need to have >> those defined type as resources in the RAL catalog (I believe it >> might be used for relationship or event propagation). > > > >> I suspect that defined type instances could be removed from the >> catalog by replacing them with the collections of resources the >> represent (recursively). However, I would expect that to cause an >> explosion in the number of relationships (both signaling and >> non-signaling) that must appear in the catalog. > > > "Flattening" the catalog is something that we have discussed before > [1] and which would give imho quite some improvements. > > However, we would likely loose important context information, that > should then be preserved differently. > > Coming back to the "Bug": I think swapping the statement would give > already some improvement and is a fix that could go into the next > (bugfix)-release. Given that there are no concerns regarding possible > side effects.
Unfortunately there's a side-effect. The problem is when you start the master, it creates a settings catalog with file resources in it. Those will be then subject to the to_hash method, which calls parse_title which calls in turn resource_type. With the swapped statements, this will call known_resource_types. Since it's the first time, it will initialize itself and will trigger a full parse of the manifests. Beforehand, it would end-up in the Puppet::Type.type which would return true and completely skip this initial parsing until a catalog gets compiled. I have an interim patch that instead mark defined type resources as defined types, I'll update the bug report with my findings. The drawback of course is that it adds a property that gets serialized in the catalog. If the property is not present (like an older master to a newer agent), the agent resorts to the old behavior of testing first for a builtin type then a definition. I'll polish the patch, and make sure there are tests for it and will push a PR as soon as I can for review. Thanks! -- Brice Figureau My Blog: http://www.masterzen.fr/ -- 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 puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/52F646AE.302%40daysofwonder.com. For more options, visit https://groups.google.com/groups/opt_out.