Skip to content

Commit 1d7a4b5

Browse files
committed
[EXT] Bugfix: parses Elasticsearch version correctly
Changes regexp for `\d` so it parses the version correctly when a major, minor or patch have more than 1 digit (e.g. 7.10.0) Fixes #1110
1 parent 6cd5e31 commit 1d7a4b5

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

elasticsearch-extensions/README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Elasticsearch::Extensions
22

3-
This library provides a set of extensions to the
4-
[`elasticsearch`](https://github.com/elasticsearch/elasticsearch-ruby) Rubygem.
3+
This library provides a set of extensions to the [`elasticsearch`](https://github.com/elasticsearch/elasticsearch-ruby) Rubygem.
54

65
## Installation
76

elasticsearch-extensions/lib/elasticsearch/extensions/test/cluster.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ def __determine_version
530530
raise RuntimeError, "Cannot determine Elasticsearch version from [#{arguments[:command]} --version] or [#{arguments[:command]} -v]"
531531
end
532532

533-
if m = output.match(/Version: (\d\.\d.\d).*,/)
533+
if(m = output.match(/Version: (\d+\.\d+.\d+).*,/))
534534
m[1]
535535
else
536536
raise RuntimeError, "Cannot determine Elasticsearch version from elasticsearch --version output [#{output}]"

elasticsearch-extensions/test/test/cluster/unit/cluster_test.rb

+18
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,24 @@ class Elasticsearch::Extensions::TestClusterTest < Elasticsearch::Test::UnitTest
291291
assert_equal '2.0', @subject.__determine_version
292292
end
293293

294+
should "return version from `elasticsearch --version` when version reaches double digits" do
295+
File.expects(:exist?).with('/foo/bar/bin/../lib/').returns(false)
296+
File.expects(:exist?).with('/foo/bar/bin/elasticsearch').returns(true)
297+
298+
io = mock('IO')
299+
io.expects(:pid).returns(123)
300+
io.expects(:read).returns('Version: 7.11.0-SNAPSHOT, Build: d1c86b0/2016-03-30T10:43:20Z, JVM: 1.8.0_60')
301+
io.expects(:closed?).returns(false)
302+
io.expects(:close)
303+
IO.expects(:popen).returns(io)
304+
305+
Process.stubs(:wait)
306+
Process.expects(:kill).with('INT', 123)
307+
308+
assert_equal '7.0', @subject.__determine_version
309+
end
310+
311+
294312
should "return version from arguments" do
295313
cluster = Elasticsearch::Extensions::Test::Cluster::Cluster.new command: '/foo/bar/bin/elasticsearch', version: '5.2'
296314
assert_equal '5.0', cluster.__determine_version

elasticsearch-extensions/test/test_helper.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
JRUBY = defined?(JRUBY_VERSION)
2727

28-
if ENV['COVERAGE'] && ENV['CI'].nil? && !RUBY_1_8
28+
if ENV['COVERAGE'] && ENV['CI'].nil?
2929
require 'simplecov'
3030
SimpleCov.start { add_filter "/test|test_" }
3131
end

0 commit comments

Comments
 (0)