elastomer-client 2.3.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +0 -4
  4. data/CHANGELOG.md +8 -0
  5. data/docker/docker-compose.cibuild.yml +8 -0
  6. data/docker/docker-compose.es24.yml +34 -0
  7. data/docker/docker-compose.es56.yml +37 -0
  8. data/docker/elasticsearch.yml +15 -0
  9. data/docs/index.md +2 -2
  10. data/docs/notifications.md +1 -1
  11. data/elastomer-client.gemspec +2 -0
  12. data/lib/elastomer/client.rb +86 -33
  13. data/lib/elastomer/client/app_delete_by_query.rb +158 -0
  14. data/lib/elastomer/client/delete_by_query.rb +8 -115
  15. data/lib/elastomer/client/docs.rb +63 -13
  16. data/lib/elastomer/client/errors.rb +10 -2
  17. data/lib/elastomer/client/index.rb +40 -12
  18. data/lib/elastomer/client/multi_percolate.rb +2 -2
  19. data/lib/elastomer/client/native_delete_by_query.rb +60 -0
  20. data/lib/elastomer/client/percolator.rb +6 -3
  21. data/lib/elastomer/client/scroller.rb +22 -7
  22. data/lib/elastomer/client/tasks.rb +188 -0
  23. data/lib/elastomer/client/warmer.rb +6 -0
  24. data/lib/elastomer/notifications.rb +1 -0
  25. data/lib/elastomer/version.rb +1 -1
  26. data/lib/elastomer/version_support.rb +177 -0
  27. data/script/cibuild +77 -6
  28. data/script/cibuild-elastomer-client +1 -0
  29. data/script/cibuild-elastomer-client-es24 +8 -0
  30. data/script/cibuild-elastomer-client-es56 +8 -0
  31. data/script/poll-for-es +20 -0
  32. data/test/client/{delete_by_query_test.rb → app_delete_by_query_test.rb} +7 -7
  33. data/test/client/bulk_test.rb +9 -13
  34. data/test/client/cluster_test.rb +2 -2
  35. data/test/client/docs_test.rb +133 -49
  36. data/test/client/errors_test.rb +21 -1
  37. data/test/client/es_5_x_warmer_test.rb +13 -0
  38. data/test/client/index_test.rb +104 -39
  39. data/test/client/multi_percolate_test.rb +13 -6
  40. data/test/client/multi_search_test.rb +5 -5
  41. data/test/client/native_delete_by_query_test.rb +123 -0
  42. data/test/client/nodes_test.rb +1 -1
  43. data/test/client/percolator_test.rb +10 -2
  44. data/test/client/repository_test.rb +1 -1
  45. data/test/client/scroller_test.rb +16 -6
  46. data/test/client/snapshot_test.rb +1 -1
  47. data/test/client/stubbed_client_test.rb +1 -1
  48. data/test/client/tasks_test.rb +139 -0
  49. data/test/client/template_test.rb +1 -1
  50. data/test/client/warmer_test.rb +8 -4
  51. data/test/client_test.rb +99 -0
  52. data/test/core_ext/time_test.rb +1 -1
  53. data/test/notifications_test.rb +4 -0
  54. data/test/test_helper.rb +129 -21
  55. data/test/version_support_test.rb +119 -0
  56. 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: 2.3.0
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-11-30 00:00:00.000000000 Z
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.13
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