kitchen testing

Recipe Compile Error in /tmp/kitchen/cache/cookbooks/csl_configure_machine_image/recipes/default.rb

     undefined method `[]' for nil:NilClass

     Cookbook Trace:
       /tmp/kitchen/cache/cookbooks/csl_security_layer_requirements/recipes/user_accounts_and_environments.rb:29:in `from_file'
       /tmp/kitchen/cache/cookbooks/csl_security_layer_requirements/recipes/default.rb:37:in `from_file'
       /tmp/kitchen/cache/cookbooks/csl_configure_machine_image/recipes/default.rb:17:in `from_file'

     Relevant File Content:

      22:      PASS_WARN_AGE: node['users_and_environments']['PASS_WARN_AGE']
      23:    )
      24:  end
      26:  # Modify active user parameters to match: # chage --maxdays 90 <user>
      27:  # Modify active user parameters to match: # chage --mindays 7 <user>
      28:  # Modify active user parameters to match: # chage --warndays 7 <user>"
      29>> node['etc']['passwd'].each do |user, _data|
      30:    execute "PASS_WARN_AGE for #{user}" do
      31:      command "chage --warndays 7 #{user}"
      32:      live_stream true
      33:    end
      34:    execute "PASS_MIN_DAYS for #{user}" do
      35:      command "chage --mindays 7 #{user}"
      36:      live_stream true
      37:      not_if { user == 'root' }
      38:    end

     System Info:
     ruby=ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]

     Running handlers:
   [2020-06-15T15:53:52+00:00] ERROR: Running exception handlers
     Running handlers complete
   [2020-06-15T15:53:52+00:00] ERROR: Exception handlers complete
     Chef Infra Client failed. 1 resources updated in 04 seconds
   [2020-06-15T15:53:52+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out
   [2020-06-15T15:53:52+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
   [2020-06-15T15:53:52+00:00] FATAL: NoMethodError: undefined method `[]' for nil:NilClass

Hi @Chiango2 ! :wave:

With the information you've given from the bug report, it looks like node['etc'] is returning nil? Which means that trying to run node['etc']['passwd'] would break.

After hearing from one of my colleagues, it sounds like those attributes may not be set (hence the nil), here are some notes about setting data structures. :slightly_smiling_face: