On 2015-08-01 21:33, Johan De Wit wrote:
Hi,

Sorry for the somewhat misleading title, but don't know better wording.

Is it possible to access special variables that are set outside the function ? I'm not talking about config settings, but looking at something like a variable that I could query to get the filename of the manifest that is calling the function.

No, that is not generally available.

For the new Function API (new in Puppet 4.0, and avail when using parser=future) we want to add support for things like this. We already have the mechanism in place for injecting additional parameters into a function calls in the new API, but no support for file/line of caller yet.

See https://tickets.puppetlabs.com/browse/PUP-2769
Background is the create_resources that is not filling the resource.file and resource.line, which makes catalog-diff not recognize the resource as a 'resource', thus giving false reports.
One way to avoid this problem is also to use the new resource Puppet 4.0 syntax (available in future parser as well in 3x) for resource creation that makes it as powerful as the create_resources function call. That way, the resource creation is done by the language and the file line information is included.

e.g.
    Resource[$the_type] {
# this part can be omitted if defaults were not used in the create_resource call

      default: * => $defaults_hash;

      # The $title can naturally be an array if the same attributes
      # should be applied to multiple resources.
      # Use iteration around the entire resource expression to create
      # a sequence of resources with different attributes

      $title: * => $attributes_hash;
    }

Hope that helps.
Regards

- henrik

--

Visit my Blog "Puppet on the Edge"
http://puppet-on-the-edge.blogspot.se/


--
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/m8opou%242tj%241%40ger.gmane.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to