def go(&stream_block)
      @status = :running
      @results = {}
      @hosts.each do |host|
        cmd_event = Chloride::Event.new(:action_progress, name)
        msg = if host.localhost
                "[localhost/#{host}] #{@cmd}\n\n"
              else
                "[#{host}] #{@cmd}\n\n"
              end
        cmd_event.add_message(Chloride::Event::Message.new(:info, host, msg))
        stream_block.call(cmd_event)
        @results[host.hostname] = host.execute(@cmd, @sudo, &update_proc(&stream_block))
      end

      @results
    end
def go(&stream_block)
      @status = :running
      @results = {}
      @hosts.each do |host|
        cmd_event = Chloride::Event.new(:action_progress, name)
        msg = if host.localhost
                "[localhost/#{host}] #{@cmd}\n\n"
              else
                "[#{host}] #{@cmd}\n\n"
              end
        cmd_event.add_message(Chloride::Event::Message.new(:info, host, msg))
        stream_block.call(cmd_event)
        @results[host.hostname] = host.execute(@cmd, @sudo, &update_proc(&stream_block))
      end

      @results
    end
TODO: Document args
 TODO: Document block format