class Chef::Knife::Status
Public Instance Methods
highline()
click to toggle source
# File lib/chef/knife/status.rb, line 47 def highline @h ||= HighLine.new end
run()
click to toggle source
# File lib/chef/knife/status.rb, line 51 def run all_nodes = [] q = Chef::Search::Query.new query = @name_args[0] || "*:*" q.search(:node, query) do |node| all_nodes << node end all_nodes.sort { |n1, n2| if (config[:sort_reverse] || Chef::Config[:knife][:sort_status_reverse]) (n2["ohai_time"] or 0) <=> (n1["ohai_time"] or 0) else (n1["ohai_time"] or 0) <=> (n2["ohai_time"] or 0) end }.each do |node| if node.has_key?("ec2") fqdn = node['ec2']['public_hostname'] ipaddress = node['ec2']['public_ipv4'] else fqdn = node['fqdn'] ipaddress = node['ipaddress'] end hours, minutes, seconds = time_difference_in_hms(node["ohai_time"]) hours_text = "#{hours} hour#{hours == 1 ? ' ' : 's'}" minutes_text = "#{minutes} minute#{minutes == 1 ? ' ' : 's'}" run_list = "#{node.run_list}" if config[:run_list] if hours > 24 color = :red text = hours_text elsif hours >= 1 color = :yellow text = hours_text else color = :green text = minutes_text end line_parts = Array.new line_parts << @ui.color(text, color) + " ago" << node.name line_parts << fqdn if fqdn line_parts << ipaddress if ipaddress line_parts << run_list if run_list if node['platform'] platform = node['platform'] if node['platform_version'] platform << " #{node['platform_version']}" end line_parts << platform end highline.say(line_parts.join(', ') + '.') unless (config[:hide_healthy] && hours < 1) end end