    # File lib/chef/knife/status.rb, line 41
          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| (n1["ohai_time"] or 0) <=> (n2["ohai_time"] or 0) }.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 << "<%= 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(', ') + '.')
            end

          end