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.

Reply via email to