elasticsearch_check.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # frozen_string_literal: true
  2. class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
  3. def pass?
  4. return true unless Chewy.enabled?
  5. running_version.present? && compatible_version?
  6. end
  7. def message
  8. if running_version.present?
  9. Admin::SystemCheck::Message.new(:elasticsearch_version_check, I18n.t('admin.system_checks.elasticsearch_version_check.version_comparison', running_version: running_version, required_version: required_version))
  10. else
  11. Admin::SystemCheck::Message.new(:elasticsearch_running_check)
  12. end
  13. end
  14. private
  15. def running_version
  16. @running_version ||= begin
  17. Chewy.client.info['version']['number']
  18. rescue Faraday::ConnectionFailed, Elasticsearch::Transport::Transport::Error
  19. nil
  20. end
  21. end
  22. def required_version
  23. '7.x'
  24. end
  25. def compatible_version?
  26. Gem::Version.new(running_version) >= Gem::Version.new(required_version)
  27. end
  28. def missing_queues
  29. @missing_queues ||= Sidekiq::ProcessSet.new.reduce(SIDEKIQ_QUEUES) { |queues, process| queues - process['queues'] }
  30. end
  31. end