elastomer-client 2.3.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +0 -4
- data/CHANGELOG.md +8 -0
- data/docker/docker-compose.cibuild.yml +8 -0
- data/docker/docker-compose.es24.yml +34 -0
- data/docker/docker-compose.es56.yml +37 -0
- data/docker/elasticsearch.yml +15 -0
- data/docs/index.md +2 -2
- data/docs/notifications.md +1 -1
- data/elastomer-client.gemspec +2 -0
- data/lib/elastomer/client.rb +86 -33
- data/lib/elastomer/client/app_delete_by_query.rb +158 -0
- data/lib/elastomer/client/delete_by_query.rb +8 -115
- data/lib/elastomer/client/docs.rb +63 -13
- data/lib/elastomer/client/errors.rb +10 -2
- data/lib/elastomer/client/index.rb +40 -12
- data/lib/elastomer/client/multi_percolate.rb +2 -2
- data/lib/elastomer/client/native_delete_by_query.rb +60 -0
- data/lib/elastomer/client/percolator.rb +6 -3
- data/lib/elastomer/client/scroller.rb +22 -7
- data/lib/elastomer/client/tasks.rb +188 -0
- data/lib/elastomer/client/warmer.rb +6 -0
- data/lib/elastomer/notifications.rb +1 -0
- data/lib/elastomer/version.rb +1 -1
- data/lib/elastomer/version_support.rb +177 -0
- data/script/cibuild +77 -6
- data/script/cibuild-elastomer-client +1 -0
- data/script/cibuild-elastomer-client-es24 +8 -0
- data/script/cibuild-elastomer-client-es56 +8 -0
- data/script/poll-for-es +20 -0
- data/test/client/{delete_by_query_test.rb → app_delete_by_query_test.rb} +7 -7
- data/test/client/bulk_test.rb +9 -13
- data/test/client/cluster_test.rb +2 -2
- data/test/client/docs_test.rb +133 -49
- data/test/client/errors_test.rb +21 -1
- data/test/client/es_5_x_warmer_test.rb +13 -0
- data/test/client/index_test.rb +104 -39
- data/test/client/multi_percolate_test.rb +13 -6
- data/test/client/multi_search_test.rb +5 -5
- data/test/client/native_delete_by_query_test.rb +123 -0
- data/test/client/nodes_test.rb +1 -1
- data/test/client/percolator_test.rb +10 -2
- data/test/client/repository_test.rb +1 -1
- data/test/client/scroller_test.rb +16 -6
- data/test/client/snapshot_test.rb +1 -1
- data/test/client/stubbed_client_test.rb +1 -1
- data/test/client/tasks_test.rb +139 -0
- data/test/client/template_test.rb +1 -1
- data/test/client/warmer_test.rb +8 -4
- data/test/client_test.rb +99 -0
- data/test/core_ext/time_test.rb +1 -1
- data/test/notifications_test.rb +4 -0
- data/test/test_helper.rb +129 -21
- data/test/version_support_test.rb +119 -0
- metadata +59 -5
@@ -0,0 +1,119 @@
|
|
1
|
+
require_relative './test_helper'
|
2
|
+
|
3
|
+
describe Elastomer::VersionSupport do
|
4
|
+
describe "supported versions" do
|
5
|
+
it "allows 2.3.0 to 5.6" do
|
6
|
+
two_three_series = ["2.3.0", "2.3.5", "2.4.0", "2.9.9", "2.9.100"]
|
7
|
+
five_series = ["5.0.0", "5.0.9", "5.2.0", "5.6.9", "5.6.100"]
|
8
|
+
|
9
|
+
two_three_series.each do |version|
|
10
|
+
assert Elastomer::VersionSupport.new(version).es_version_2_x?
|
11
|
+
end
|
12
|
+
|
13
|
+
five_series.each do |version|
|
14
|
+
assert Elastomer::VersionSupport.new(version).es_version_5_x?
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "unsupported versions" do
|
20
|
+
it "blow up" do
|
21
|
+
too_low = ["0.90", "1.0.1", "2.0.0", "2.2.0"]
|
22
|
+
too_high = ["5.7.0", "6.0.0"]
|
23
|
+
|
24
|
+
(too_low + too_high).each do |version|
|
25
|
+
exception = assert_raises(ArgumentError, "expected #{version} to not be supported") do
|
26
|
+
Elastomer::VersionSupport.new(version)
|
27
|
+
end
|
28
|
+
|
29
|
+
assert_match version, exception.message
|
30
|
+
assert_match "is not supported", exception.message
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "ES 2.x" do
|
36
|
+
let(:version_support) { Elastomer::VersionSupport.new("2.3.5") }
|
37
|
+
|
38
|
+
describe "#keyword" do
|
39
|
+
it "returns non_analyzed string" do
|
40
|
+
expected = {
|
41
|
+
type: "string",
|
42
|
+
index: "not_analyzed",
|
43
|
+
store: true
|
44
|
+
}
|
45
|
+
assert_equal(expected, version_support.keyword(store: true))
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#text" do
|
50
|
+
it "returns analyzed string" do
|
51
|
+
expected = {
|
52
|
+
type: "string",
|
53
|
+
term_vector: "with_positions_offsets"
|
54
|
+
}
|
55
|
+
assert_equal(expected, version_support.text(term_vector: "with_positions_offsets"))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "native_delete_by_query?" do
|
60
|
+
it "returns false" do
|
61
|
+
refute version_support.native_delete_by_query?, "ES 2.X does not have native delete_by_query support"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#indexing_directives" do
|
66
|
+
it "returns a Hash of indexing parameter name to field name" do
|
67
|
+
assert_includes(version_support.indexing_directives.to_a, [:consistency, "_consistency"])
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "#unsupported_indexing_directives" do
|
72
|
+
it "returns a Hash of indexing parameter name to field name" do
|
73
|
+
assert_includes(version_support.unsupported_indexing_directives.to_a, [:wait_for_active_shards, "_wait_for_active_shards"])
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "ES 5.x" do
|
79
|
+
let(:version_support) { Elastomer::VersionSupport.new("5.6.0") }
|
80
|
+
|
81
|
+
describe "#keyword" do
|
82
|
+
it "returns keyword" do
|
83
|
+
expected = {
|
84
|
+
type: "keyword",
|
85
|
+
store: true
|
86
|
+
}
|
87
|
+
assert_equal(expected, version_support.keyword(store: true))
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "#text" do
|
92
|
+
it "returns text" do
|
93
|
+
expected = {
|
94
|
+
type: "text",
|
95
|
+
term_vector: "with_positions_offsets"
|
96
|
+
}
|
97
|
+
assert_equal(expected, version_support.text(term_vector: "with_positions_offsets"))
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "native_delete_by_query?" do
|
102
|
+
it "returns true" do
|
103
|
+
assert version_support.native_delete_by_query?, "ES 5.X has native delete_by_query support"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#indexing_directives" do
|
108
|
+
it "returns a Hash of indexing parameter name to field name" do
|
109
|
+
assert_includes(version_support.indexing_directives.to_a, [:wait_for_active_shards, "_wait_for_active_shards"])
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "#unsupported_indexing_directives" do
|
114
|
+
it "returns an Hash of indexing parameter names to field name" do
|
115
|
+
assert_includes(version_support.unsupported_indexing_directives.to_a, [:consistency, "_consistency"])
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastomer-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pease
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-12-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
@@ -123,6 +123,26 @@ dependencies:
|
|
123
123
|
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: 0.1.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: minitest-focus
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.1'
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 1.1.2
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - "~>"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '1.1'
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.1.2
|
126
146
|
- !ruby/object:Gem::Dependency
|
127
147
|
name: webmock
|
128
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,6 +171,20 @@ dependencies:
|
|
151
171
|
- - "~>"
|
152
172
|
- !ruby/object:Gem::Version
|
153
173
|
version: '1.8'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: pry-byebug
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '3.4'
|
181
|
+
type: :development
|
182
|
+
prerelease: false
|
183
|
+
version_requirements: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '3.4'
|
154
188
|
- !ruby/object:Gem::Dependency
|
155
189
|
name: rake
|
156
190
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,6 +218,10 @@ files:
|
|
184
218
|
- LICENSE.txt
|
185
219
|
- README.md
|
186
220
|
- Rakefile
|
221
|
+
- docker/docker-compose.cibuild.yml
|
222
|
+
- docker/docker-compose.es24.yml
|
223
|
+
- docker/docker-compose.es56.yml
|
224
|
+
- docker/elasticsearch.yml
|
187
225
|
- docs/README.md
|
188
226
|
- docs/bulk_indexing.md
|
189
227
|
- docs/client.md
|
@@ -198,6 +236,7 @@ files:
|
|
198
236
|
- docs/warmers.md
|
199
237
|
- elastomer-client.gemspec
|
200
238
|
- lib/elastomer/client.rb
|
239
|
+
- lib/elastomer/client/app_delete_by_query.rb
|
201
240
|
- lib/elastomer/client/bulk.rb
|
202
241
|
- lib/elastomer/client/cluster.rb
|
203
242
|
- lib/elastomer/client/delete_by_query.rb
|
@@ -206,11 +245,13 @@ files:
|
|
206
245
|
- lib/elastomer/client/index.rb
|
207
246
|
- lib/elastomer/client/multi_percolate.rb
|
208
247
|
- lib/elastomer/client/multi_search.rb
|
248
|
+
- lib/elastomer/client/native_delete_by_query.rb
|
209
249
|
- lib/elastomer/client/nodes.rb
|
210
250
|
- lib/elastomer/client/percolator.rb
|
211
251
|
- lib/elastomer/client/repository.rb
|
212
252
|
- lib/elastomer/client/scroller.rb
|
213
253
|
- lib/elastomer/client/snapshot.rb
|
254
|
+
- lib/elastomer/client/tasks.rb
|
214
255
|
- lib/elastomer/client/template.rb
|
215
256
|
- lib/elastomer/client/warmer.rb
|
216
257
|
- lib/elastomer/core_ext/time.rb
|
@@ -220,24 +261,32 @@ files:
|
|
220
261
|
- lib/elastomer/middleware/parse_json.rb
|
221
262
|
- lib/elastomer/notifications.rb
|
222
263
|
- lib/elastomer/version.rb
|
264
|
+
- lib/elastomer/version_support.rb
|
223
265
|
- script/bootstrap
|
224
266
|
- script/cibuild
|
267
|
+
- script/cibuild-elastomer-client
|
268
|
+
- script/cibuild-elastomer-client-es24
|
269
|
+
- script/cibuild-elastomer-client-es56
|
225
270
|
- script/console
|
271
|
+
- script/poll-for-es
|
226
272
|
- test/assertions.rb
|
273
|
+
- test/client/app_delete_by_query_test.rb
|
227
274
|
- test/client/bulk_test.rb
|
228
275
|
- test/client/cluster_test.rb
|
229
|
-
- test/client/delete_by_query_test.rb
|
230
276
|
- test/client/docs_test.rb
|
231
277
|
- test/client/errors_test.rb
|
278
|
+
- test/client/es_5_x_warmer_test.rb
|
232
279
|
- test/client/index_test.rb
|
233
280
|
- test/client/multi_percolate_test.rb
|
234
281
|
- test/client/multi_search_test.rb
|
282
|
+
- test/client/native_delete_by_query_test.rb
|
235
283
|
- test/client/nodes_test.rb
|
236
284
|
- test/client/percolator_test.rb
|
237
285
|
- test/client/repository_test.rb
|
238
286
|
- test/client/scroller_test.rb
|
239
287
|
- test/client/snapshot_test.rb
|
240
288
|
- test/client/stubbed_client_test.rb
|
289
|
+
- test/client/tasks_test.rb
|
241
290
|
- test/client/template_test.rb
|
242
291
|
- test/client/warmer_test.rb
|
243
292
|
- test/client_test.rb
|
@@ -247,6 +296,7 @@ files:
|
|
247
296
|
- test/middleware/parse_json_test.rb
|
248
297
|
- test/notifications_test.rb
|
249
298
|
- test/test_helper.rb
|
299
|
+
- test/version_support_test.rb
|
250
300
|
homepage: https://github.com/github/elastomer-client
|
251
301
|
licenses:
|
252
302
|
- MIT
|
@@ -267,26 +317,29 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
317
|
version: '0'
|
268
318
|
requirements: []
|
269
319
|
rubyforge_project:
|
270
|
-
rubygems_version: 2.6.
|
320
|
+
rubygems_version: 2.6.14
|
271
321
|
signing_key:
|
272
322
|
specification_version: 4
|
273
323
|
summary: A library for interacting with Elasticsearch
|
274
324
|
test_files:
|
275
325
|
- test/assertions.rb
|
326
|
+
- test/client/app_delete_by_query_test.rb
|
276
327
|
- test/client/bulk_test.rb
|
277
328
|
- test/client/cluster_test.rb
|
278
|
-
- test/client/delete_by_query_test.rb
|
279
329
|
- test/client/docs_test.rb
|
280
330
|
- test/client/errors_test.rb
|
331
|
+
- test/client/es_5_x_warmer_test.rb
|
281
332
|
- test/client/index_test.rb
|
282
333
|
- test/client/multi_percolate_test.rb
|
283
334
|
- test/client/multi_search_test.rb
|
335
|
+
- test/client/native_delete_by_query_test.rb
|
284
336
|
- test/client/nodes_test.rb
|
285
337
|
- test/client/percolator_test.rb
|
286
338
|
- test/client/repository_test.rb
|
287
339
|
- test/client/scroller_test.rb
|
288
340
|
- test/client/snapshot_test.rb
|
289
341
|
- test/client/stubbed_client_test.rb
|
342
|
+
- test/client/tasks_test.rb
|
290
343
|
- test/client/template_test.rb
|
291
344
|
- test/client/warmer_test.rb
|
292
345
|
- test/client_test.rb
|
@@ -296,3 +349,4 @@ test_files:
|
|
296
349
|
- test/middleware/parse_json_test.rb
|
297
350
|
- test/notifications_test.rb
|
298
351
|
- test/test_helper.rb
|
352
|
+
- test/version_support_test.rb
|