# File lib/rhc/rest/client.rb, line 681
        def parse_messages(result, data)
          raw = (result || {})['messages'] || []
          raw.delete_if do |m|
            m.delete_if{ |k,v| k.nil? || v.blank? } if m.is_a? Hash
            m.blank?
          end
          warnings, messages, raw = Array(raw).inject([[],[],[]]) do |a, m|
            severity, field, text = m.values_at('severity', 'field', 'text')
            text = (text || "").gsub(/\A\n+/m, "").rstrip
            case severity
            when 'warning'
              a[0] << text
            when 'debug'
              a[2] << m
              a[1] << text if debug?
            when 'info'
              a[2] << m
              a[1] << text if debug? || field == 'result'
            else
              a[2] << m
              a[1] << text
            end
            a
          end

          if data.is_a?(Array)
            data.each do |d|
              d['messages'] = messages
              d['warnings'] = warnings
            end
          elsif data.is_a?(Hash)
            data['messages'] = messages
            data['warnings'] = warnings
          end

          warnings.each do |warning|
            unless (@warning_map ||= Set.new).include?(warning)
              @warning_map << warning
              warn warning
            end
          end if respond_to? :warn
          raw
        end