Sha256: 662a60ff5583a0e749a7d41ecf095d2f805b214ddc13933e8650982a40afaeb7

Contents?: true

Size: 1.43 KB

Versions: 25

Compression:

Stored size: 1.43 KB

Contents

module LogStash; module Outputs; class ElasticSearch
  class LicenseChecker

    def initialize(logger)
      @logger = logger
    end

    # Figure out if the provided license is appropriate or not
    # The appropriate_license? methods is the method called from LogStash::Outputs::ElasticSearch::HttpClient::Pool#healthcheck!
    # @param pool
    # @param url [LogStash::Util::SafeURI] ES node URL
    # @return [Boolean] true if provided license is deemed appropriate
    def appropriate_license?(pool, url)
      return true if pool.serverless?

      license = extract_license(pool.get_license(url))
      case license_status(license)
      when 'active'
        true
      when nil
        warn_no_license(url)
        false
      else # 'invalid', 'expired'
        warn_invalid_license(url, license)
        true
      end
    end

    NO_LICENSE = {}.freeze
    private_constant :NO_LICENSE

    def extract_license(license)
      license.fetch("license", NO_LICENSE)
    end

    def license_status(license)
      license.fetch("status", nil)
    end

    private

    def warn_no_license(url)
      @logger.error("Could not connect to a compatible version of Elasticsearch", url: url.sanitized.to_s)
    end

    def warn_invalid_license(url, license)
      @logger.warn("Elasticsearch license is not active, please check Elasticsearch’s licensing information",
                   url: url.sanitized.to_s, license: license)
    end

  end
end; end; end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
logstash-output-elasticsearch-11.22.12-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-12.0.2-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.11-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-12.0.1-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-12.0.0-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.10-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.9-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.8-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.7-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.6-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.5-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.4-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.3-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.2-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.1-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.22.0-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.21.0-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.20.1-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.20.0-java lib/logstash/outputs/elasticsearch/license_checker.rb
logstash-output-elasticsearch-11.19.0-java lib/logstash/outputs/elasticsearch/license_checker.rb