Module: GenesisCollector::Chef

Included in:
Collector
Defined in:
lib/genesis_collector/chef.rb

Instance Method Summary collapse

Instance Method Details

#collect_chefObject



6
7
8
# File 'lib/genesis_collector/chef.rb', line 6

def collect_chef
  @payload[:chef] = @chef_node.nil? ? collect_chef_from_knife : collect_chef_from_node
end

#collect_chef_from_knifeObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/genesis_collector/chef.rb', line 20

def collect_chef_from_knife
  output = shellout_with_timeout('knife node show `hostname` -c /etc/chef/client.rb -a ohai_time -a run_list -a tags -a environment -a roles --format json')
  _hostname, parsed = JSON.parse(output).first
  {
    environment: parsed['environment'],
    roles: parsed['roles'],
    run_list: parsed['run_list'].join(', '),
    tags: parsed['tags'],
    last_run: Time.at(parsed['ohai_time']).utc.iso8601
  }
rescue
  nil
end

#collect_chef_from_nodeObject



10
11
12
13
14
15
16
17
18
# File 'lib/genesis_collector/chef.rb', line 10

def collect_chef_from_node
  {
    environment: @chef_node.chef_environment,
    roles: @chef_node.roles,
    run_list: @chef_node.run_list.to_s,
    tags: @chef_node.tags,
    last_run: Time.at(@chef_node.ohai_time).utc.iso8601
  }
end