class Chef::Knife::GoiardiGelList

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/goiardi_gel_list.rb, line 60
def run
  @rest = Chef::REST.new(Chef::Config[:chef_server_url])
  rows = config[:limit] || 15
  offset = config[:offset] || 0
  start_time, end_time = apply_time_args()
  list = @rest.get_rest(generate_query(rows, offset, start_time, end_time, config), false, {})
  list.map! do |l|
    l["event"]["object_type"] = format_object_type(l["event"]["object_type"])
    li = { :event => { :id => l["event"]["id"],
      :action => l["event"]["action"],
      :name => l["event"]["object_name"],
      :type => l["event"]["object_type"],
      :time => format_time(l["event"]["time"]) } }
    if config[:doer]
      actor_info = JSON.parse(l["event"]["actor_info"])
      li[:event][:performed_by] = actor_info["username"]
    end
    li
  end
  output(list)
end

Private Instance Methods

generate_query(rows, offset, start_time, end_time, options) click to toggle source
# File lib/chef/knife/goiardi_gel_list.rb, line 84
def generate_query(rows, offset, start_time, end_time, options)
    query = "events?limit=#{rows}&offset=#{offset}"
    if start_time
      query += "&from=#{start_time}"
    end
    if end_time
      query += "&until=#{end_time}"
    end
    if options[:object_type]
      query += "&object_type=#{options[:object_type]}"
    end
    if options[:object_name]
      query += "&object_name=#{options[:object_name]}"
    end
    if options[:doer]
      query += "&doer=#{options[:doer]}"
    end
    query
end