Sha256: ec17b0bf4b4f2c0f0723999e555da7c396818ab66b43a39b9924de0bcccd6622

Contents?: true

Size: 955 Bytes

Versions: 3

Compression:

Stored size: 955 Bytes

Contents

module Heartcheck
  module Checks
    class Firewall < Base
      def services
        super.map { |opts| Services::Firewall.new(opts) }
      end

      def validate
        services.each do |service|
          begin
            Net::Telnet.new(service.params).close
          rescue Errno::ECONNREFUSED; nil
          rescue
            append_error(service)
          end
        end
      end

      def uri_info
        services.map do |service|
          {
            host: service.host,
            port: service.port,
            scheme: service.uri.scheme || ''
          }
        end
      end

      private

      def custom_error(service)
        error_message = "connection refused on: #{service.host}:#{service.port}"

        if service.proxy
          proxy_uri = URI(service.proxy)
          error_message << " using proxy: #{proxy_uri.host}:#{proxy_uri.port}"
        end

        @errors << error_message
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
heartcheck-2.0.0 lib/heartcheck/checks/firewall.rb
heartcheck-1.6.0 lib/heartcheck/checks/firewall.rb
heartcheck-1.5.1 lib/heartcheck/checks/firewall.rb