Fix spurious admin dashboard warning when using ElasticSearch 7.x (#23064)

Some 7.x ElasticSearch versions support some 6.x nodes, thus the version check
is inadequate. I am not sure there is a good way to check if a server
implements all the 7.x APIs, so check server version and minimum wire version
instead.
This commit is contained in:
Claire 2023-01-18 16:21:48 +01:00 committed by GitHub
parent fcc4c9b34a
commit 41517a4845
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -30,19 +30,24 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
def running_version def running_version
@running_version ||= begin @running_version ||= begin
Chewy.client.info['version']['minimum_wire_compatibility_version'] || Chewy.client.info['version']['number']
Chewy.client.info['version']['number']
rescue Faraday::ConnectionFailed rescue Faraday::ConnectionFailed
nil nil
end end
end end
def compatible_wire_version
Chewy.client.info['version']['minimum_wire_compatibility_version']
end
def required_version def required_version
'7.x' '7.x'
end end
def compatible_version? def compatible_version?
return false if running_version.nil? return false if running_version.nil?
Gem::Version.new(running_version) >= Gem::Version.new(required_version)
Gem::Version.new(running_version) >= Gem::Version.new(required_version) ||
Gem::Version.new(compatible_wire_version) >= Gem::Version.new(required_version)
end end
end end