Anyone has an idea how to do that?

On Wednesday, March 11, 2015 at 5:40:00 PM UTC+1, Raphaël Pinson wrote:
>
> Hello,
>
>
> I've been working on supporting recursive dependency checks in 
> rspec-puppet today.
>
> I have a PR for that at https://github.com/rodjek/rspec-puppet/pull/261
>
> Unfortunately, I have had to scratch my head for quite a few things, and 
> I'd love to some ideas from you, fellow puppet devs!
>
> One ugly thing I've had to do is to canonicalize resources.
>
> def canonicalize_resource(resource)
>   resource_from_ref(resource_ref(resource))
> end
>
>
> The problem I'm trying to solve is that when I have a resource reference, 
> I need to retrieve the corresponding resource from the catalog. 
> @catalogue.resource(ref) does that, but it sometimes returns a "partial" 
> resource. For example, with file resources, the resource might have a 
> "path" parameter, but resource[:path] returns nil.
>
> In Puppet 3.7.4, I managed to "fix" this by canonicalizing the resource 
> with @catalog.resource(resource.to_ref). I have no idea why that works 
> actually.
>
> However, in older versions of Puppet, I haven't found a way to retrieve 
> this "full" version of the resource that can actually be passed to 
> autorequire blocks safely.
>
> Another problem, probaly more fundamental, is that I need to process 
> resource dependencies recursively. I managed to do so with a double loop, 
> but I suspect it should be doable using @catalogue.relationship_graph. 
> However, I've spent quite a bit of time playing with all the methods I 
> could think of, and couldn't figure out how to compute the relationship 
> between two resources using the relationship_graph. I ended up using 
> @catalogue.upstream_from_vertex, which doesn't work with Puppet 2.6.18 (see 
> Travis CI build).
>
>
> Do you have any pointers to improve this PR and make it work with all 
> (supported) versions of Puppet?
>
> Other remarks regarding the feature itself are also welcome of course!
>
>
> Cheers,
>
> Raphaël
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/a9da76a3-e63f-42c3-8abf-4f125e93191a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to