Sha256: d51d9f45451221f370d4d8466644684e4e7666082849b1c3e23e96be52b9586b

Contents?: true

Size: 1.75 KB

Versions: 46

Compression:

Stored size: 1.75 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

module NewRelic
  module Agent
    class NewRelicService
      class Marshaller
        def parsed_error(error)
          error_type    = error['error_type']
          error_message = error['message']

          exception = case error_type
          when 'NewRelic::Agent::LicenseException'
            LicenseException.new(error_message)
          when 'NewRelic::Agent::ForceRestartException'
            ForceRestartException.new(error_message)
          when 'NewRelic::Agent::ForceDisconnectException'
            ForceDisconnectException.new(error_message)
          else
            CollectorError.new("#{error['error_type']}: #{error['message']}")
          end

          exception
        end

        def prepare(data, options={})
          encoder = options[:encoder] || default_encoder
          if data.respond_to?(:to_collector_array)
            data.to_collector_array(encoder)
          elsif data.kind_of?(Array)
            data.map { |element| prepare(element, options) }
          else
            data
          end
        end

        def default_encoder
          Encoders::Identity
        end

        def self.human_readable?
          false
        end

        protected

        def return_value(data)
          if data.respond_to?(:has_key?)
            if data.has_key?('exception')
              raise parsed_error(data['exception'])
            elsif data.has_key?('return_value')
              return data['return_value']
            end
          end
          ::NewRelic::Agent.logger.debug("Unexpected response from collector: #{data}")
          nil
        end
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
newrelic_rpm-3.18.0.329 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.17.2.327 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.17.1.326 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.17.0.325 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.16.3.323 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.16.2.321 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.16.1.320 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.16.0.318 lib/new_relic/agent/new_relic_service/marshaller.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.15.2.317 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.15.1.316 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.15.0.314 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.14.3.313 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.14.2.312 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.14.1.311 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.14.0.305 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.13.2.302 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.13.1.300 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.13.0.299 lib/new_relic/agent/new_relic_service/marshaller.rb
newrelic_rpm-3.12.1.298 lib/new_relic/agent/new_relic_service/marshaller.rb