Sha256: 234faa342f75ac4e84a0d48617b8e819dc2b1527dcd1884ce6a3f06c677dbd29

Contents?: true

Size: 964 Bytes

Versions: 15

Compression:

Stored size: 964 Bytes

Contents

# frozen_string_literal: true

module Orchestration
  module Services
    module HTTPHealthcheck
      def connect
        code = Net::HTTP.get_response(
          URI("http://#{@configuration.host}:#{@configuration.port}")
        ).code
        connection_error(code) if connection_error?(code)
        connection_error(code) unless connection_success?(code)
      end

      def connection_errors
        [Errno::ECONNREFUSED, HTTPConnectionError]
      end

      private

      def connection_error(code)
        raise HTTPConnectionError,
              I18n.t('orchestration.http.connection_error', code:)
      end

      def connection_error?(code)
        %w[502 503 500].include?(code)
      end

      def connection_success?(_code)
        # Override if specific success codes needed, otherwise default to true
        # (i.e. an error code [as defined above] was not returned so we assume
        # success).

        true
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
orchestration-0.7.15 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.14 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.13 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.12 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.11 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.10 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.9 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.8 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.6 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.5 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.4 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.3 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.2 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.1 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.7.0 lib/orchestration/services/mixins/http_healthcheck.rb