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:
		
							parent
							
								
									0687eb20da
								
							
						
					
					
						commit
						ae94782edb
					
				
					 1 changed files with 8 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -30,19 +30,24 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
 | 
			
		|||
 | 
			
		||||
  def running_version
 | 
			
		||||
    @running_version ||= begin
 | 
			
		||||
      Chewy.client.info['version']['minimum_wire_compatibility_version'] ||
 | 
			
		||||
        Chewy.client.info['version']['number']
 | 
			
		||||
      Chewy.client.info['version']['number']
 | 
			
		||||
    rescue Faraday::ConnectionFailed
 | 
			
		||||
      nil
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def compatible_wire_version
 | 
			
		||||
    Chewy.client.info['version']['minimum_wire_compatibility_version']
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def required_version
 | 
			
		||||
    '7.x'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def compatible_version?
 | 
			
		||||
    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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue