Issue #23318 has been reported by Dolf Schimmel.
----------------------------------------
Bug #23318: Invalid YAML (hiera) file and automatic param binding fails in
vague errors
https://projects.puppetlabs.com/issues/23318
* Author: Dolf Schimmel
* Status: Unreviewed
* Priority: Normal
* Assignee:
* Category:
* Target version:
* Affected Puppet version: 3.3.2
* Keywords: hiera, automatic parameter binding
* Branch:
----------------------------------------
Hi,
In my chain of hiera files I have an empty file. My manifests look as follows:
<pre>
<blockquote>
node 'example.com' {
include role::vps::hypervisor
}
class role::vps::hypervisor inherits role::vps {
}
class role::vps inherits role {
}
class role {
include profile::base
}
class profile::base (
$firewall = params_lookup('firewall', 'global' ),
$manage_networking = true
) {
# Some code here
}
</pre>
</blockquote>
This results in the following error:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
undefined method `empty?' for false:FalseClass at role.pp:2 on node example.com
Once I remove the parameters in the profile::base class, the error changes in
to the little bit more helpful message:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Data
retrieved from /etc/puppet/hieradata/vps.yaml is String not Hash at
/etc/puppet/modules/profile/manifests/base.pp:13 on node example.com.
Two issues:<ul><li>
I think an empty or invalid Hiera file should not result in an error at
all.</li><li>
If, for whatever reason, automatic parameter binding fails, a reasonable error
should be displayed. In the past I've seen (and reported) several issues where
the binding failed, and resulted in some vague issues which are hard to debug.
</li></ul>
Parser: future (not sure if relevant)<br />
<br />
Hiera version: 1.3.0<br />
Puppet version: 3.3.2<br />
OS: Debian 7, 64 bit<br />
Env: Passenger<br />
I wouldn't classify the priority of this issue as low, because it's easy to
trigger, and really hard to find the cause off the given error message.
--
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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.