# File lib/chef/expander/control.rb, line 143
      def node_status
        status_mutex = Mutex.new
        h = ::HighLine.new
        node_status = [h.color("Host", :bold), h.color("PID", :bold), h.color("GUID", :bold), h.color("Vnodes", :bold)]

        print("Collecting status info from the cluster...")

        AMQP.start(Expander.config.amqp_config) do
          node = Expander::Node.local_node
          node.exclusive_control_queue.subscribe do |header, message|
            status = Yajl::Parser.parse(message)
            status_mutex.synchronize do
              node_status << status["hostname_f"]
              node_status << status["pid"].to_s
              node_status << status["guid"]
              # BIG ASSUMPTION HERE that nodes only have contiguous vnode ranges
              # will not be true once vnode recovery is implemented
              node_status << "#{status["vnodes"].min}-#{status["vnodes"].max}"
            end
          end
          node.broadcast_message(Yajl::Encoder.encode(:action => :status, :rsvp => node.exclusive_control_queue_name))
          EM.add_timer(2) { AMQP.stop;EM.stop }
        end

        puts "done"
        puts
        puts h.list(node_status, :columns_across, 4)
        puts
      end