Issue #16525 has been updated by Luke Kanies.
I know that the loop is critical (because without it you basically can't collect defined resources), but I don't know if it's critical that we lazy-evaluate the loop. It could be that running the collector when we encounter it works fine. Has anyone tested that? What behavior results? ---------------------------------------- Bug #16525: Collectors should be evaluated at declaration time https://projects.puppetlabs.com/issues/16525#change-73031 Author: Hunter Haugen Status: Unreviewed Priority: Normal Assignee: Category: Target version: Affected Puppet version: Keywords: Branch: # Exported Resource Collector Bug ## Overview: There is [a loop in Puppet](https://github.com/puppetlabs/puppet/blob/f15a260295fe36af578802909a0b282abc57c90d/lib/puppet/parser/compiler.rb#L255) ( that runs all collectors at the end of processing the catalog, and then evaluates any defined resources (in case the collector added them). This means that collectors are not run at the time of declaration, and the `defined()` funcion in puppet will not find the resources. The trick to get it working is that the `defined()` method can be put in a defined resource declared after the collector, which will cause the collector to be run first. Icky. ## Extra Since this is a fairly complicated issue, I've created a repo to illustrate this bug: <https://github.com/hunner/puppet-collector_bug> Note the broken test: <https://github.com/hunner/puppet-collector_bug/blob/master/spec/classes/collector_bug_broken_spec.rb> ... this should not be passing, but it does. Also, I am using a fork of rspec-puppet that implements exported resource testing, which is how I found this bug: <https://github.com/rodjek/rspec-puppet/pull/49> -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
