Sha256: 05e83007c8c2b6421c4a8b30403b8dcc40c8d4102b04d8bcf40a20aaf05678f7

Contents?: true

Size: 969 Bytes

Versions: 53

Compression:

Stored size: 969 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: 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

53 entries across 53 versions & 1 rubygems

Version Path
orchestration-0.6.16 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.15 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.14 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.13 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.12 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.11 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.10 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.9 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.8 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.7 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.6 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.5 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.4 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.3 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.2 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.1 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.6.0 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.5.14 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.5.13 lib/orchestration/services/mixins/http_healthcheck.rb
orchestration-0.5.12 lib/orchestration/services/mixins/http_healthcheck.rb