[chef] Re: node attribute initialized with empty array reset to nil in recipe in Chef 11


Chronological Thread 
  • From: AJ Christensen < >
  • To: chef < >
  • Subject: [chef] Re: node attribute initialized with empty array reset to nil in recipe in Chef 11
  • Date: Tue, 19 Feb 2013 10:24:17 +1300

I can't reproduce with 11.4.0 and chef-shell

 => :ucanhaz_halp
chef > attributes_mode
chef:attributes > default['logstash']['join_groups'] = []
 => []
chef:attributes > recipe_mode
chef:recipe > node['logstash']['join_groups'].each do |grp|
chef:recipe >   group grp do
chef:recipe >     members node['logstash']['user']
chef:recipe ?>     action :modify
chef:recipe ?>     append true
chef:recipe ?>     only_if "grep -q '^#{grp}:' /etc/group"
chef:recipe ?>   end
chef:recipe ?> end
 => []
chef:recipe > node['logstash']['join_groups']
 => []
chef:recipe > node['logstash']
 => {"join_groups"=>[]}
chef:recipe > node['logstash'].key? 'join_groups'
 => true

--AJ

On 19 February 2013 10:20, Bryan Berry 
< >
 wrote:
> Dear Chefs,
>
> I am having some pain w/ the Chef 11 migration. The following code
> works fine w/ Chef 10.* but fails on chef 11.*
>
> https://github.com/lusis/chef-logstash/blob/master/attributes/default.rb#L4
> default['logstash']['join_groups'] = []
>
> https://github.com/lusis/chef-logstash/blob/master/recipes/default.rb#L31
> node['logstash']['join_groups'].each do |grp|
>   group grp do
>     members node['logstash']['user']
>     action :modify
>     append true
>     only_if "grep -q '^#{grp}:' /etc/group"
>   end
>
> Here is the error I get.  Apparently it somehow is set to nil .   What
> am i doing wrong?
>
> NoMethodError
>
> -------------
>
> undefined method `each' for nil:NilClass
>
> Cookbook Trace:
>
> ---------------
>
>   /etc/vagrant-chef/chef-solo-1/cookbooks/logstash/recipes/default.rb:31:in
> `from_file'
>   
> /etc/vagrant-chef/chef-solo-1/cookbooks/fao-logstash/recipes/server.rb:10:in
> `from_file'
>
> Relevant File Content:
> ----------------------
> /etc/vagrant-chef/chef-solo-1/cookbooks/logstash/recipes/default.rb:
>
>  24:  directory node['logstash']['basedir'] do
>  25:    action :create
>  26:    owner "root"
>  27:    group "root"
>  28:    mode "0755"
>  29:  end
>  30:
>  31>> node['logstash']['join_groups'].each do |grp|
>  32:    group grp do
>  33:      members node['logstash']['user']
>  34:      action :modify
>  35:      append true



Archive powered by MHonArc 2.6.16.

§