That makes sense, and yeah, that whole catalog should be there unless you're dynamically injecting resources.
You might want to add a check before splunk_config['forwarder_confdir'] in case you didn't find the resource in the catalog so you don't hit a null pointer issue. Not seeing a better way to do this right now actually. Trevor On Fri, Jan 30, 2015 at 3:23 PM, Nan Liu <[email protected]> wrote: > On Fri, Jan 30, 2015 at 1:12 PM, Trevor Vaughan <[email protected]> > wrote: > >> If you do access the catalog in a self.* method, it's completely compile >> order dependent and you'll only have access to the catalog as compiled to >> that point, not the entire catalog. >> > > It should be the whole catalog since the provider is running once > everything is compiled. The partial catalog problem is only with puppet > functions (or anything in a manifest). > > I was able to work around this by abusing self.prefetch, since the > transaction layer passes in a subset of resources: > > def self.prefetch(resources) > catalog = resources[resources.keys.first].catalog > # Note: catalog.resources != resources > splunk_config = catalog.resources.find{|s| s.type == :splunk_config} > confdir = splunk_config['forwarder_confdir'] || raise(Puppet::Error, > 'Unknown splunk forwarder confdir') > @file_path = File.join(confdir, 'outputs.conf') > end > > The whole work around have been submitted as a PR [1]. I am open for a > better solution, since this doesn't seem ideal. > > Nan > > 1. https://github.com/puppetlabs/puppetlabs-splunk/pull/14 > > -- > 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/CACqVBqD0d5Tf-URcPT%3D0yhOex6795zeD3n9n_mvpXHS1i6mh8Q%40mail.gmail.com > <https://groups.google.com/d/msgid/puppet-dev/CACqVBqD0d5Tf-URcPT%3D0yhOex6795zeD3n9n_mvpXHS1i6mh8Q%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Trevor Vaughan Vice President, Onyx Point, Inc (410) 541-6699 [email protected] -- This account not approved for unencrypted proprietary information -- -- 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/CANs%2BFoWSY7PCji9%3DBAmHdt7GmDg_OVUsUAtt4sR%2BWMkSf%2B94_A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
