Issue #8066 has been updated by Gary Larizza.
Status changed from Unreviewed to Closed
This does indeed work in 2.6.8. Closing the ticket.
Garys-MBP:manifests gary$ puppet apply init.pp -v --modulepath
/Users/gary/modules/
info: Applying configuration version '1308860729'
notice: The Name is boohoo and GID is tada.
notice: /Stage[main]//Definition::Do_user[boohoo]/Notify[boohoo]/message:
defined 'message' as 'The Name is boohoo and GID is tada.'
notice: The Name is wahoo and GID is wahoo.
notice: /Stage[main]//Definition::Do_user[wahoo]/Notify[wahoo]/message:
defined 'message' as 'The Name is wahoo and GID is wahoo.'
notice: Finished catalog run in 0.01 seconds
Garys-MBP:manifests gary$ puppet --version
2.6.8
----------------------------------------
Bug #8066: Setting $name as a default value in a define results in 'main'
https://projects.puppetlabs.com/issues/8066
Author: Gary Larizza
Status: Closed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version:
Keywords:
Branch:
This bug was found by a student named Dan in the Chicago Public Training this
week.
If you create a defined resource type and set the default value of a parameter
to $name, it will set the value to 'main' instead of the actual $name value.
You CAN use $name in the body of the defined resource type, but setting it in
the parameters results in 'main'. See the sample code below:
##do_user.pp:
define definition::do_user($gid=$name){
notify {$name:
message => "The Name is ${name} and GID is ${gid}.",
}
}
##init.pp
definition::do_user{
'wahoo':;
'boohoo':
gid => 'tada';
}
This results in the following:
info: Applying configuration version '1308797860'
notice: The Name is wahoo and GID is main.
notice: /Stage[main]//Definition::Do_user[wahoo]/Notify[wahoo]/message:
defined 'message' as 'The Name is wahoo and GID is main.'
notice: The Name is boohoo and GID is tada.
notice: /Stage[main]//Definition::Do_user[boohoo]/Notify[boohoo]/message:
defined 'message' as 'The Name is boohoo and GID is tada.'
This, however, works properly:
##do_user.pp
define definition::do_user(){
$gid = $name
notify {$name:
message => "The Name is ${name} and GID is ${gid}.",
}
}
##init.pp
definition::do_user{
'wahoo':;
'boohoo':;
}
Result of the run:
info: Applying configuration version '1308798227'
notice: The Name is wahoo and GID is wahoo.
notice: /Stage[main]//Definition::Do_user[wahoo]/Notify[wahoo]/message:
defined 'message' as 'The Name is wahoo and GID is wahoo.'
notice: The Name is boohoo and GID is boohoo.
notice: /Stage[main]//Definition::Do_user[boohoo]/Notify[boohoo]/message:
defined 'message' as 'The Name is boohoo and GID is boohoo.'
--
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.