class Chef::Knife::RunsList

Constants

HEADERS
PROTOCOL_VERSION

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/runs_list.rb, line 69
def run
  @rest = Chef::ServerAPI.new(Chef::Config[:chef_server_url])

  node_name = name_args[0]

  check_start_and_end_times_provided()
  start_time, end_time = apply_time_args()
  check_3month_window(start_time, end_time)

  query_string = generate_query(start_time, end_time, node_name, config[:rows],
                                config[:status])
  runs = history(query_string)

  output(runs)
end

Private Instance Methods

generate_query(start_time, end_time, node_name = nil, rows = nil, status = nil) click to toggle source
# File lib/chef/knife/runs_list.rb, line 87
def generate_query(start_time, end_time, node_name = nil, rows = nil, status = nil)
  query = '/reports'
  if node_name
    query += "/nodes/#{node_name}"
  else
    query += "/org"
  end
  query += "/runs?from=#{start_time}&until=#{end_time}"
  if rows
    query += "&rows=#{rows}"
  end
  if status
    query += "&status=#{status}"
  end
  query
end
history(query_string) click to toggle source
# File lib/chef/knife/runs_list.rb, line 104
def history(query_string)
  runs = @rest.get_rest(query_string,  HEADERS)

  runs["run_history"].map do |run|
    { :run_id => run["run_id"],
      :node_name => run["node_name"],
      :status => run["status"],
      :start_time => run["start_time"] }
  end
end