Sha256: 322c1f653e103a41b4b7b606fd5457dbfccdbe7b88566ff8c7cbb8ad1491d419

Contents?: true

Size: 835 Bytes

Versions: 4

Compression:

Stored size: 835 Bytes

Contents

require 'net/http'

module Sonic
  module Protocol
    class HTTP
      include Protocol::Base

      def initialize(service_checker)
        @service_checker = service_checker
        port_suffix = service_checker.port ? ":#{service_checker.port}" : ""
        @uri = URI.parse("#{service_checker.protocol}://#{service_checker.host}#{port_suffix}/#{service_checker.path}")
      end

      def get
        begin
          @service_checker.response = Net::HTTP.get_response(@uri)
          case @service_checker.response.code
          when '200', '201', '202', '203', '204', '205', '206'
            true
          else
            @service_checker.error = "service error"
            false
          end
        rescue Exception => e
          @service_checker.error = e.to_s
          false
        end
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sonic-0.1.4 lib/sonic/protocols/http.rb
sonic-0.1.3 lib/sonic/protocols/http.rb
sonic-0.0.2 lib/sonic/protocols/http.rb
sonic-0.0.1 lib/sonic/protocols/http.rb