[Puppet - Bug #23318] Invalid YAML (hiera) file and automatic param binding fails in vague errors

2013-12-06 Thread tickets

Issue #23318 has been updated by Henrique Rodrigues.


I have the exact same problem, but using CentOS 64-bit, Puppet 3.3.2, Hiera 
1.2.1 and the normal Puppet parser (not future).


Bug #23318: Invalid YAML (hiera) file and automatic param binding fails in 
vague errors
https://projects.puppetlabs.com/issues/23318#change-101121

* 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:ulli
I think an empty or invalid Hiera file should not result in an error at 
all./lili
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.0br /
Puppet version: 3.3.2br /
OS: Debian 7, 64 bitbr /
Env: Passengerbr /

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 puppet-bugs+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-bugs@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.


[Puppet - Bug #23318] Invalid YAML (hiera) file and automatic param binding fails in vague errors

2013-12-06 Thread tickets

Issue #23318 has been updated by Henrique Rodrigues.


Looks like a duplicate of #23273.


Bug #23318: Invalid YAML (hiera) file and automatic param binding fails in 
vague errors
https://projects.puppetlabs.com/issues/23318#change-101124

* 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:ulli
I think an empty or invalid Hiera file should not result in an error at 
all./lili
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.0br /
Puppet version: 3.3.2br /
OS: Debian 7, 64 bitbr /
Env: Passengerbr /

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 puppet-bugs+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-bugs@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.