Sha256: 3bd3a522b6b8b11b620dd979f754359fbf7990f972b6291360ce1096dde5a081

Contents?: true

Size: 961 Bytes

Versions: 66

Compression:

Stored size: 961 Bytes

Contents

module ::ProxyAPI
  class AvailableProxy
    HTTP_ERRORS = [
      EOFError,
      Errno::ECONNRESET,
      Errno::EINVAL,
      Net::HTTPBadResponse,
      Net::HTTPHeaderSyntaxError,
      Net::ProtocolError,
      Timeout::Error,
      ProxyAPI::ProxyException
    ].freeze

    def initialize(args)
      @args = args
    end

    def available?
      begin
        return true if has_scap_feature? && minimum_version
      rescue *HTTP_ERRORS
        return false
      end
      false
    end

    private

    def has_scap_feature?
      @features ||= ::ProxyAPI::Features.new(@args).features
      @features.include?('openscap')
    end

    def openscap_proxy_version
      @versions ||= ::ProxyAPI::Version.new(@args).proxy_versions['modules']
      @versions['openscap'] if @versions && @versions['openscap']
    end

    def minimum_version
      return false unless openscap_proxy_version
      openscap_proxy_version.to_f >= 0.5
    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
foreman_openscap-8.0.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-7.1.1 app/lib/proxy_api/available_proxy.rb
foreman_openscap-7.1.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-7.0.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-6.0.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.2.3 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.2.2 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.1.1 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.2.1 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.2.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.1.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-5.0.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.3.3 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.3.2 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.3.1 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.3.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.1.3 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.0.6 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.2.0 app/lib/proxy_api/available_proxy.rb
foreman_openscap-4.0.5 app/lib/proxy_api/available_proxy.rb