elasticsearch_check.rb 951 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. # frozen_string_literal: true
  2. class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
  3. def skip?
  4. !current_user.can?(:view_devops)
  5. end
  6. def pass?
  7. return true unless Chewy.enabled?
  8. running_version.present? && compatible_version?
  9. end
  10. def message
  11. if running_version.present?
  12. 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))
  13. else
  14. Admin::SystemCheck::Message.new(:elasticsearch_running_check)
  15. end
  16. end
  17. private
  18. def running_version
  19. @running_version ||= begin
  20. Chewy.client.info['version']['number']
  21. rescue Faraday::ConnectionFailed
  22. nil
  23. end
  24. end
  25. def required_version
  26. '7.x'
  27. end
  28. def compatible_version?
  29. Gem::Version.new(running_version) >= Gem::Version.new(required_version)
  30. end
  31. end