module GenesisCollector::Chef

Public Instance Methods

collect_chef() click to toggle source
# 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_knife() click to toggle source
# 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_node() click to toggle source
# 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