Add admin dashboard checks for Elasticsearch version (#17863)
parent
b58db8f12e
commit
f65eaa5aae
3 changed files with 45 additions and 0 deletions
@ -0,0 +1,39 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck |
||||
def pass? |
||||
return true unless Chewy.enabled? |
||||
|
||||
running_version.present? && compatible_version? |
||||
end |
||||
|
||||
def message |
||||
if running_version.present? |
||||
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)) |
||||
else |
||||
Admin::SystemCheck::Message.new(:elasticsearch_running_check) |
||||
end |
||||
end |
||||
|
||||
private |
||||
|
||||
def running_version |
||||
@running_version ||= begin |
||||
Chewy.client.info['version']['number'] |
||||
rescue Faraday::ConnectionFailed |
||||
nil |
||||
end |
||||
end |
||||
|
||||
def required_version |
||||
'7.x' |
||||
end |
||||
|
||||
def compatible_version? |
||||
Gem::Version.new(running_version) >= Gem::Version.new(required_version) |
||||
end |
||||
|
||||
def missing_queues |
||||
@missing_queues ||= Sidekiq::ProcessSet.new.reduce(SIDEKIQ_QUEUES) { |queues, process| queues - process['queues'] } |
||||
end |
||||
end |
Loading…
Reference in new issue