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.

Reply via email to