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.
