Class: Chronos::Application::VerifyIntegration
- Inherits:
-
Object
- Object
- Chronos::Application::VerifyIntegration
- Defined in:
- lib/chronos/application/verify_integration.rb
Overview
Sends and verifies one synthetic exception against the configured Chronos receiver.
Constant Summary collapse
- SCHEMA_VERSION =
"1.0".freeze
- VERIFICATION_KIND =
"integration_verification".freeze
- VERIFICATION_TAG =
"chronos-integration-verification".freeze
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(config, delivery_pipeline, logger = nil, options = {}) ⇒ VerifyIntegration
constructor
A new instance of VerifyIntegration.
Constructor Details
#initialize(config, delivery_pipeline, logger = nil, options = {}) ⇒ VerifyIntegration
Returns a new instance of VerifyIntegration.
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/chronos/application/verify_integration.rb', line 23 def initialize(config, delivery_pipeline, logger = nil, = {}) @config = config @delivery_pipeline = delivery_pipeline @logger = logger || Internal::SafeLogger.new(config.logger) @uuid_generator = [:uuid_generator] || proc { SecureRandom.uuid } @notice_builder = [:notice_builder] || Core::NoticeBuilder.new(config) @serializer = [:serializer] || Core::PayloadSerializer.new( config, nil, :max_payload_size => proc { @delivery_pipeline.max_payload_size } ) end |
Instance Method Details
#call ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/chronos/application/verify_integration.rb', line 36 def call verification_id = bounded(@uuid_generator.call, 128) return local_failure("configuration_invalid", verification_id, configuration_guidance) unless configured? event = build_event(verification_id) transport_result = @delivery_pipeline.deliver_sync_result(event) classify(transport_result, verification_id, event.event_id) rescue StandardError => error @logger.warn("Chronos integration verification failed: #{error.class}") local_failure("verification_failed", verification_id, "Review the Chronos configuration and retry.") end |