Trevor, Reid,

Thanks for taking the time to look at this. 

Exists should be checking the @property_hash object which is populated by 
> the instances method.
> Something like:
> def exists?
>   @property_hash[:ensure] == :present
> end



The real type does implement the exists? method by looking at the property 
hash. But when using the transition type, the property hash is not yet 
filled correctly, because the instances and prefetched methods are not 
(yet) called.


On Friday, 14 July 2017 22:57:54 UTC+2, Reid Vandewiele wrote:
>
> I haven't dived into the code recently but depending on when prefetching 
> happens, it might be possible the Transition type is causing an "early" 
> invocation of #exists?. This is because Transition invokes a check of the 
> resource it is "prior to", thusly: 
> https://github.com/puppetlabs/puppetlabs-transition/blob/0.1.1/lib/puppet/provider/transition/ruby.rb#L68
>
> If it's the case that prefetch isn't called until the first instance of a 
> given type is evaluated, that might be something that's happening *after* 
> the Transition resource does its thing. Which could help explain why your 
> exists?() method, which uses prefetched data, isn't working.
>
>  
 This seems to b what is happening.
 
But what is the best way forward to solve this?


-- 
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/5e95cce3-6afb-43b7-82d8-4895b84662f4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to