Issue #3490 has been reported by Ashley Penney.

----------------------------------------
Bug #3490: Defined() requires the class to exist when used in an if statement
http://projects.puppetlabs.com/issues/3490

Author: Ashley Penney
Status: Unreviewed
Priority: Low
Assigned to: 
Category: functions
Target version: 
Affected version: 0.25.4
Keywords: defined function
Branch: 


This may not be a bug, but it should be documented perhaps as it was surprising 
to me.  While doing some testing if a new module I pushed the following snippet 
to my production modules:

if defined(Class["splunk4::client"]) {
stuff here
}

This then failed when nodes checked in with:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could 
not find class splunk4::client at 
/etc/puppet/modules/production/rhythmyx/manifests/init.pp:20 on node 
hlstestper1.law.harvard.edu

because the splunk4 module wasn't in production.  Simply moving it into the 
production environment (and including it nowhere) was enough to get it working 
which was unexpected.  I would expect in an if statment that it would simply 
ignore any errors from defined and skip the block, not crash and burn. 


-- 
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