Just an update for everyone. The problem with validating that the referenced resource is in the catalog now has a solution (for the most part). You’d need to take advantage of the new `post_compile_hook` that should be supported in future versions of Puppet. I may write up a helper module later on that makes the whole reference parameter thing trivial.
This is the PR with the mentioned hook. It has been merged: https://github.com/puppetlabs/puppet/pull/1853 -- Tom Linkin Professional Services Engineer http://puppetlabs.com/ twitter: @trlinkin On Tuesday, August 27, 2013 at 12:40 PM, Andy Parker wrote: > On Mon, Aug 26, 2013 at 5:38 PM, Thomas Linkin <[email protected] > (mailto:[email protected])> wrote: > > > > There is a hook for types that gets called when catalog compilation is > > > > complete, but it then only calls the relationship params giving them a > > > > chance to resolve their relationships. I'm currently working on a pull > > > > request to change that situation though. > > > > > > Could you give some more details about what you are thinking of changing? > > Sure! > > > > https://projects.puppetlabs.com/issues/22288 > > > > Looks great. I left a common on the PR that you submitted to get a minor > cleanup. > > > -- > > Tom Linkin > > Professional Services Engineer > > http://puppetlabs.com/ > > twitter: @trlinkin > > > > > > > > > > On Monday, August 26, 2013 at 12:41 PM, Andy Parker wrote: > > > > > On Sat, Aug 24, 2013 at 8:09 PM, Tom Linkin <[email protected] > > > (mailto:[email protected])> wrote: > > > > Dominic, > > > > > > > > I have done this before: https://github.com/trlinkin/puppet-file_param > > > > > > > > > > A few other things have done this as well. Usually it is when there is a > > > "resource" that is needed to manage another resource, but isn't a > > > resource itself on disk. There was some network device management work > > > that used that pattern. > > > > > > > You're right in assuming you will need to access the referenced > > > > resource during catalog application time. The only issue is that there > > > > is no way to know if the referenced resource is actually in the catalog > > > > until catalog application time. It would be nice to know if the > > > > reference cannot resolve before the catalog is sent to the agent and > > > > partially applied. > > > > > > > > > > Yes, this is only possible during application right now. > > > > > > > > > > > There is a hook for types that gets called when catalog compilation is > > > > complete, but it then only calls the relationship params giving them a > > > > chance to resolve their relationships. I'm currently working on a pull > > > > request to change that situation though. > > > > > > > > > > Could you give some more details about what you are thinking of changing? > > > > > > > -- > > > > Tom Linkin > > > > Professional Services Engineer > > > > http://puppetlabs.com/ > > > > twitter: @trlinkin > > > > > > > > > > > > > > > > On Friday, August 23, 2013 at 1:11 AM, Dominic Cleal wrote: > > > > > > > > > On 21/08/13 21:12, Trevor Vaughan wrote: > > > > > > Interesting. I was thinking that he would be using the resource as > > > > > > part > > > > > > of a type value. I suppose if you pass it directly to the provider > > > > > > it > > > > > > would work but it seems that any manipulation in the type itself > > > > > > wouldn't work. > > > > > > > > > > > > Happy to be wrong though. > > > > > > > > > > I suspect there's some truth to what you're saying, depending on when > > > > > > > > > > the value's used. If I was trying to access the other resource from > > > > > the > > > > > type's parameter setter or similar, then I suspect this would be parse > > > > > order dependent. > > > > > > > > > > Using the other resource from a provider in the compiled catalog, > > > > > should > > > > > be late enough in the process that it's fully accessible. > > > > > > > > > > Thanks for your feedback Dan and Trevor. > > > > > > > > > > -- > > > > > Dominic Cleal > > > > > Red Hat Engineering > > > > > > > > > > -- > > > > > 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] > > > > > (mailto:[email protected]). > > > > > To post to this group, send email to [email protected] > > > > > (mailto:[email protected]). > > > > > Visit this group at http://groups.google.com/group/puppet-dev. > > > > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > 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] > > > > (mailto:puppet-dev%[email protected]). > > > > To post to this group, send email to [email protected] > > > > (mailto:[email protected]). > > > > Visit this group at http://groups.google.com/group/puppet-dev. > > > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > > > > > > > -- > > > Andrew Parker > > > [email protected] (mailto:[email protected]) > > > Freenode: zaphod42 > > > Twitter: @aparker42 > > > Software Developer > > > > > > Join us at PuppetConf 2013, August 22-23 in San Francisco - > > > http://bit.ly/pupconf13 > > > Register now and take advantage of the Final Countdown discount - save > > > 15%! > > > -- > > > 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] > > > (mailto:[email protected]). > > > To post to this group, send email to [email protected] > > > (mailto:[email protected]). > > > Visit this group at http://groups.google.com/group/puppet-dev. > > > For more options, visit https://groups.google.com/groups/opt_out. > > > > -- > > 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] > > (mailto:puppet-dev%[email protected]). > > To post to this group, send email to [email protected] > > (mailto:[email protected]). > > Visit this group at http://groups.google.com/group/puppet-dev. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > -- > Andrew Parker > [email protected] (mailto:[email protected]) > Freenode: zaphod42 > Twitter: @aparker42 > Software Developer > > Join us at PuppetConf 2014, September 23-24 in San Francisco > -- > 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] > (mailto:[email protected]). > To post to this group, send email to [email protected] > (mailto:[email protected]). > Visit this group at http://groups.google.com/group/puppet-dev. > For more options, visit https://groups.google.com/groups/opt_out. -- 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 post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-dev. For more options, visit https://groups.google.com/groups/opt_out.
