Sha256: 8763c3659f643eef4d1fa868d4df638446f419f0a1fed571cfd075deb48cafae
Contents?: true
Size: 1.62 KB
Versions: 3
Compression:
Stored size: 1.62 KB
Contents
# encoding: utf-8 module OneApm module Support class Marshaller # Used to wrap errors reported to agent by the collector class CollectorError < StandardError; end def parsed_error(error) error_type = error['error_type'] error_message = error['message'] exception = case error_type when 'OneApm::LicenseException' OneApm::LicenseException.new(error_message) when 'OneApm::ForceRestartException' OneApm::ForceRestartException.new(error_message) when 'OneApm::ForceDisconnectException' OneApm::ForceDisconnectException.new(error_message) else OneApm::Support::Marshaller::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 ::OneApm::Agent.logger.debug("Unexpected response from collector: #{data}") nil end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
oneapm_rpm-1.1.2 | lib/one_apm/support/marshaller.rb |
oneapm_rpm-1.1.1 | lib/one_apm/support/marshaller.rb |
oneapm_rpm-1.1.0 | lib/one_apm/support/marshaller.rb |