Issue #13210 has been updated by Timur Batyrshin.
The way I needed the behaviour of passing :undef (or nil) into function is
stacking classes/defines with hiera like:
<pre>
class foo ( $x = hiera('value_x', undef)) {
# some code here
class { 'foo:bar':
x => $x
}
}
class foo:bar ( $x = undef ) {
# do some processing with $x
}
</pre>
Thus if you don't have value_x defined in hiera you pass the undef to wrapped
class.
Do you think converting undef into nil rather than into '' will break much
things?
In ruby nil is often essentially the same as undef in puppet whereas '' is not.
----------------------------------------
Bug #13210: undef changes into '' when passed to function as a param
https://projects.puppetlabs.com/issues/13210#change-58667
Author: Timur Batyrshin
Status: Investigating
Priority: Normal
Assignee: Chris Price
Category:
Target version:
Affected Puppet version:
Keywords:
Branch:
Suppose we have a manifest like that:
<pre>
define foo ( $x = '1' ) {
notify { "x${x}": }
}
class bar {
$x = myfunc( undef )
foo {'no1': x=> $x }
}
class baz {
$x = undef
foo {'no2': x=> $x }
}
include bar
include baz
</pre>
With myfunc() defined like that:
<pre>
module Puppet::Parser::Functions
newfunction(:myfunc, :type => :rvalue) do |param|
return param
end
end
</pre>
When applying the manifest we get the following output.
<pre>
notice: x
notice: /Stage[main]/Bar/Foo[no1]/Notify[x]/message: defined 'message' as 'x'
notice: x1
notice: /Stage[main]/Baz/Foo[no2]/Notify[x1]/message: defined 'message' as 'x1'
notice: Finished catalog run in 0.06 seconds
</pre>
However the same message should be produced in both calls to foo.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.