Issue #5129 has been reported by Peter Meier.
----------------------------------------
Bug #5129: functions are able to change puppet variables
https://projects.puppetlabs.com/issues/5129
Author: Peter Meier
Status: Unreviewed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version: 2.6.2
Keywords:
Branch:
While playing around with functions I found out the following:
<pre>
$ facter | grep puppet
puppetversion => 2.6.2
$ cat lib/puppet/parser/functions/array_del.rb
Puppet::Parser::Functions::newfunction(
:array_del,
:type => :rvalue,
:doc => "Deletes items from an array
Example: array_del(['a','b'],'b') -> ['a']"
) do |args|
raise Puppet::ParseError, 'array_del() needs two arguments' if args.length !=
2
args[0].to_a.delete(args[1])
args[0]
end
$ cat test.pp
$a = ['a','b','c']
$b = array_del($a,'b')
notice $b
notice $a
$ RUBYLIB=lib/ puppet test.pp
notice: Scope(Class[main]): a c
notice: Scope(Class[main]): a c
</pre>
After some discussion on IRC with Volcane I decided to report this behavior.
I'm not really sure whether this should actually be possible.
This might be related to #4370, but actually things are in my case also
slightly different.
Workaround: args[0].dup.to_a...
--
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.