mongo 2.13.1 → 2.14.0.rc1
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -4
- data/lib/mongo.rb +9 -0
- data/lib/mongo/address/ipv4.rb +1 -1
- data/lib/mongo/address/ipv6.rb +1 -1
- data/lib/mongo/bulk_write.rb +17 -0
- data/lib/mongo/caching_cursor.rb +74 -0
- data/lib/mongo/client.rb +47 -8
- data/lib/mongo/cluster.rb +3 -3
- data/lib/mongo/cluster/topology/single.rb +1 -1
- data/lib/mongo/collection.rb +26 -0
- data/lib/mongo/collection/view.rb +24 -20
- data/lib/mongo/collection/view/aggregation.rb +25 -4
- data/lib/mongo/collection/view/builder/find_command.rb +38 -18
- data/lib/mongo/collection/view/explainable.rb +27 -8
- data/lib/mongo/collection/view/iterable.rb +72 -12
- data/lib/mongo/collection/view/readable.rb +12 -2
- data/lib/mongo/collection/view/writable.rb +15 -1
- data/lib/mongo/crypt/encryption_io.rb +6 -6
- data/lib/mongo/cursor.rb +1 -0
- data/lib/mongo/database.rb +6 -0
- data/lib/mongo/error.rb +2 -0
- data/lib/mongo/error/invalid_read_concern.rb +28 -0
- data/lib/mongo/error/server_certificate_revoked.rb +22 -0
- data/lib/mongo/error/unsupported_option.rb +14 -12
- data/lib/mongo/lint.rb +2 -1
- data/lib/mongo/logger.rb +3 -3
- data/lib/mongo/operation.rb +2 -0
- data/lib/mongo/operation/aggregate/result.rb +9 -8
- data/lib/mongo/operation/collections_info/result.rb +2 -0
- data/lib/mongo/operation/delete/bulk_result.rb +2 -0
- data/lib/mongo/operation/delete/result.rb +3 -0
- data/lib/mongo/operation/explain/command.rb +4 -0
- data/lib/mongo/operation/explain/legacy.rb +4 -0
- data/lib/mongo/operation/explain/op_msg.rb +6 -0
- data/lib/mongo/operation/explain/result.rb +3 -0
- data/lib/mongo/operation/find/legacy/result.rb +2 -0
- data/lib/mongo/operation/find/result.rb +3 -0
- data/lib/mongo/operation/get_more/result.rb +3 -0
- data/lib/mongo/operation/indexes/result.rb +5 -0
- data/lib/mongo/operation/insert/bulk_result.rb +5 -0
- data/lib/mongo/operation/insert/result.rb +5 -0
- data/lib/mongo/operation/list_collections/result.rb +5 -0
- data/lib/mongo/operation/map_reduce/result.rb +10 -0
- data/lib/mongo/operation/parallel_scan/result.rb +4 -0
- data/lib/mongo/operation/result.rb +35 -6
- data/lib/mongo/operation/shared/bypass_document_validation.rb +1 -0
- data/lib/mongo/operation/shared/causal_consistency_supported.rb +1 -0
- data/lib/mongo/operation/shared/collections_info_or_list_collections.rb +2 -0
- data/lib/mongo/operation/shared/executable.rb +1 -0
- data/lib/mongo/operation/shared/idable.rb +2 -1
- data/lib/mongo/operation/shared/limited.rb +1 -0
- data/lib/mongo/operation/shared/object_id_generator.rb +1 -0
- data/lib/mongo/operation/shared/result/aggregatable.rb +1 -0
- data/lib/mongo/operation/shared/sessions_supported.rb +1 -0
- data/lib/mongo/operation/shared/specifiable.rb +1 -0
- data/lib/mongo/operation/shared/write.rb +1 -0
- data/lib/mongo/operation/shared/write_concern_supported.rb +1 -0
- data/lib/mongo/operation/update/legacy/result.rb +7 -0
- data/lib/mongo/operation/update/result.rb +8 -0
- data/lib/mongo/operation/users_info/result.rb +3 -0
- data/lib/mongo/query_cache.rb +242 -0
- data/lib/mongo/retryable.rb +8 -1
- data/lib/mongo/server.rb +5 -1
- data/lib/mongo/server/connection_common.rb +2 -2
- data/lib/mongo/server/connection_pool.rb +3 -0
- data/lib/mongo/server/monitor.rb +1 -1
- data/lib/mongo/server/monitor/connection.rb +3 -3
- data/lib/mongo/server/pending_connection.rb +2 -2
- data/lib/mongo/server/push_monitor.rb +1 -1
- data/lib/mongo/server_selector/base.rb +5 -1
- data/lib/mongo/session.rb +3 -0
- data/lib/mongo/socket.rb +6 -4
- data/lib/mongo/socket/ocsp_cache.rb +97 -0
- data/lib/mongo/socket/ocsp_verifier.rb +368 -0
- data/lib/mongo/socket/ssl.rb +45 -24
- data/lib/mongo/srv/monitor.rb +7 -13
- data/lib/mongo/srv/resolver.rb +14 -10
- data/lib/mongo/timeout.rb +2 -0
- data/lib/mongo/uri.rb +21 -390
- data/lib/mongo/uri/options_mapper.rb +582 -0
- data/lib/mongo/uri/srv_protocol.rb +3 -2
- data/lib/mongo/utils.rb +12 -1
- data/lib/mongo/version.rb +1 -1
- data/spec/NOTES.aws-auth.md +12 -7
- data/spec/README.md +56 -1
- data/spec/integration/bulk_write_spec.rb +48 -0
- data/spec/integration/client_authentication_options_spec.rb +55 -28
- data/spec/integration/connection_pool_populator_spec.rb +3 -1
- data/spec/integration/cursor_reaping_spec.rb +53 -17
- data/spec/integration/ocsp_connectivity_spec.rb +26 -0
- data/spec/integration/ocsp_verifier_cache_spec.rb +188 -0
- data/spec/integration/ocsp_verifier_spec.rb +334 -0
- data/spec/integration/query_cache_spec.rb +1045 -0
- data/spec/integration/query_cache_transactions_spec.rb +179 -0
- data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +1 -0
- data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +2 -0
- data/spec/integration/sdam_error_handling_spec.rb +68 -0
- data/spec/integration/server_selection_spec.rb +36 -0
- data/spec/integration/srv_monitoring_spec.rb +38 -3
- data/spec/integration/srv_spec.rb +56 -0
- data/spec/lite_spec_helper.rb +3 -1
- data/spec/mongo/address_spec.rb +1 -1
- data/spec/mongo/caching_cursor_spec.rb +70 -0
- data/spec/mongo/client_construction_spec.rb +54 -1
- data/spec/mongo/client_spec.rb +40 -0
- data/spec/mongo/cluster/topology/single_spec.rb +14 -5
- data/spec/mongo/cluster_spec.rb +3 -0
- data/spec/mongo/collection/view/explainable_spec.rb +87 -4
- data/spec/mongo/collection/view/map_reduce_spec.rb +2 -0
- data/spec/mongo/collection_spec.rb +60 -0
- data/spec/mongo/crypt/auto_decryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/auto_encryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/explicit_decryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/explicit_encryption_context_spec.rb +1 -1
- data/spec/mongo/database_spec.rb +44 -0
- data/spec/mongo/error/no_server_available_spec.rb +1 -1
- data/spec/mongo/logger_spec.rb +13 -11
- data/spec/mongo/query_cache_spec.rb +279 -0
- data/spec/mongo/server/connection_pool_spec.rb +7 -3
- data/spec/mongo/server/connection_spec.rb +14 -7
- data/spec/mongo/socket/ssl_spec.rb +1 -1
- data/spec/mongo/socket_spec.rb +1 -1
- data/spec/mongo/uri/srv_protocol_spec.rb +64 -33
- data/spec/mongo/uri_option_parsing_spec.rb +11 -11
- data/spec/mongo/uri_spec.rb +68 -41
- data/spec/mongo/utils_spec.rb +39 -0
- data/spec/runners/auth.rb +3 -0
- data/spec/runners/connection_string.rb +35 -124
- data/spec/spec_tests/cmap_spec.rb +7 -3
- data/spec/spec_tests/data/change_streams/change-streams-errors.yml +0 -1
- data/spec/spec_tests/data/change_streams/change-streams.yml +0 -1
- data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +6 -2
- data/spec/spec_tests/data/cmap/pool-create-min-size.yml +3 -0
- data/spec/spec_tests/data/connection_string/valid-warnings.yml +24 -0
- data/spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml +1 -3
- data/spec/spec_tests/data/sdam_monitoring/standalone.yml +2 -2
- data/spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml +2 -2
- data/spec/spec_tests/data/sdam_monitoring/standalone_suppress_equal_description_changes.yml +2 -2
- data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +2 -2
- data/spec/spec_tests/data/uri_options/auth-options.yml +25 -0
- data/spec/spec_tests/data/uri_options/compression-options.yml +6 -3
- data/spec/spec_tests/data/uri_options/read-preference-options.yml +24 -0
- data/spec/spec_tests/data/uri_options/ruby-connection-options.yml +1 -0
- data/spec/spec_tests/data/uri_options/tls-options.yml +160 -4
- data/spec/spec_tests/dns_seedlist_discovery_spec.rb +9 -1
- data/spec/spec_tests/uri_options_spec.rb +31 -33
- data/spec/support/certificates/atlas-ocsp-ca.crt +28 -0
- data/spec/support/certificates/atlas-ocsp.crt +41 -0
- data/spec/support/client_registry_macros.rb +11 -2
- data/spec/support/common_shortcuts.rb +45 -0
- data/spec/support/constraints.rb +23 -0
- data/spec/support/lite_constraints.rb +24 -0
- data/spec/support/matchers.rb +16 -0
- data/spec/support/ocsp +1 -0
- data/spec/support/session_registry.rb +52 -0
- data/spec/support/spec_config.rb +22 -0
- data/spec/support/utils.rb +19 -1
- metadata +38 -3
- metadata.gz.sig +0 -0
data/spec/runners/auth.rb
CHANGED
@@ -84,20 +84,6 @@ RSpec::Matchers.define :match_auth do |test|
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
RSpec::Matchers.define :match_options do |test|
|
88
|
-
|
89
|
-
match do |client|
|
90
|
-
options = test.options
|
91
|
-
return true unless options
|
92
|
-
options.match?(client.options)
|
93
|
-
end
|
94
|
-
|
95
|
-
failure_message do |client|
|
96
|
-
"With URI: #{test.uri_string}\n" +
|
97
|
-
"Expected that test options: #{test.options.options} would match client options: #{client.options}"
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
87
|
module Mongo
|
102
88
|
module ConnectionString
|
103
89
|
|
@@ -159,7 +145,7 @@ module Mongo
|
|
159
145
|
end
|
160
146
|
|
161
147
|
def options
|
162
|
-
@
|
148
|
+
@spec['options']
|
163
149
|
end
|
164
150
|
|
165
151
|
def client
|
@@ -239,115 +225,31 @@ module Mongo
|
|
239
225
|
end
|
240
226
|
end
|
241
227
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
'sockettimeoutms' => :socket_timeout,
|
252
|
-
'serverselectiontimeoutms' => :server_selection_timeout,
|
253
|
-
'localthresholdms' => :local_threshold,
|
254
|
-
'heartbeatfrequencyms' => :heartbeat_frequency,
|
255
|
-
'maxidletimems' => :max_idle_time,
|
256
|
-
|
257
|
-
# Write Options
|
258
|
-
'journal' => [:write_concern, 'j'],
|
259
|
-
'w' => [:write_concern, 'w'],
|
260
|
-
'wtimeoutms' => [:write_concern, 'wtimeout'],
|
261
|
-
|
262
|
-
# Read Options
|
263
|
-
'readpreference' => ['read', 'mode'],
|
264
|
-
'readpreferencetags' => ['read', 'tag_sets'],
|
265
|
-
'maxstalenessseconds' => ['read', 'max_staleness'],
|
266
|
-
|
267
|
-
# Pool Options
|
268
|
-
'minpoolsize' => :min_pool_size,
|
269
|
-
'maxpoolsize' => :max_pool_size,
|
270
|
-
|
271
|
-
# Security Options
|
272
|
-
'tls' => :ssl,
|
273
|
-
'tlsallowinvalidcertificates' => :ssl_verify_certificate,
|
274
|
-
'tlsallowinvalidhostnames' => :ssl_verify_hostname,
|
275
|
-
'tlscafile' => :ssl_ca_cert,
|
276
|
-
'tlscertificatekeyfile' => :ssl_cert,
|
277
|
-
'tlscertificatekeyfilepassword' => :ssl_key_pass_phrase,
|
278
|
-
'tlsinsecure' => :ssl_verify,
|
279
|
-
|
280
|
-
# Auth Options
|
281
|
-
'authsource' => :auth_source,
|
282
|
-
'authmechanism' => :auth_mech,
|
283
|
-
'authmechanismproperties' => :auth_mech_properties,
|
284
|
-
|
285
|
-
# Client Options
|
286
|
-
'appname' => :app_name,
|
287
|
-
'readconcernlevel' => [:read_concern, 'level'],
|
288
|
-
'retrywrites' => :retry_writes,
|
289
|
-
'zlibcompressionlevel' => :zlib_compression_level,
|
290
|
-
}
|
291
|
-
|
292
|
-
attr_reader :options
|
293
|
-
|
294
|
-
def initialize(options)
|
295
|
-
@options = options
|
296
|
-
end
|
297
|
-
|
298
|
-
def match?(opts)
|
299
|
-
@options.all? do |k, v|
|
300
|
-
k = k.downcase
|
301
|
-
|
302
|
-
expected =
|
303
|
-
case k
|
304
|
-
when 'authmechanism'
|
305
|
-
Mongo::URI::AUTH_MECH_MAP[v].downcase.to_s
|
306
|
-
when 'authmechanismproperties'
|
307
|
-
v.reduce({}) do |new_v, prop|
|
308
|
-
prop_key = prop.first.downcase
|
309
|
-
prop_val = prop.last == 'true' ? true : prop.last
|
310
|
-
new_v[prop_key] = prop_val
|
311
|
-
|
312
|
-
new_v
|
313
|
-
end
|
314
|
-
when 'compressors'
|
315
|
-
v.dup.tap do |compressors|
|
316
|
-
# The Ruby driver doesn't support snappy
|
317
|
-
compressors.delete('snappy')
|
318
|
-
end
|
319
|
-
when 'readpreference'
|
320
|
-
Mongo::URI::READ_MODE_MAP[v.downcase].to_s
|
321
|
-
when 'tlsallowinvalidcertificates', 'tlsallowinvalidhostnames', 'tlsinsecure'
|
322
|
-
!v
|
323
|
-
else
|
324
|
-
if k.end_with?('ms') && k != 'wtimeoutms'
|
325
|
-
v / 1000.0
|
326
|
-
elsif v.is_a?(String)
|
327
|
-
v.downcase
|
328
|
-
else
|
329
|
-
v
|
330
|
-
end
|
331
|
-
end
|
332
|
-
|
333
|
-
actual =
|
334
|
-
case MAPPINGS[k]
|
335
|
-
when nil
|
336
|
-
opts[k]
|
337
|
-
when Array
|
338
|
-
opts[MAPPINGS[k].first][MAPPINGS[k].last]
|
339
|
-
else
|
340
|
-
opts[MAPPINGS[k]]
|
341
|
-
end
|
342
|
-
|
343
|
-
if actual.is_a?(Symbol)
|
344
|
-
actual = actual.to_s
|
228
|
+
module_function def adjust_expected_mongo_client_options(options)
|
229
|
+
expected = options.dup.tap do |expected|
|
230
|
+
expected.each do |k, v|
|
231
|
+
# Ruby driver downcases auth mechanism properties when
|
232
|
+
# constructing the client.
|
233
|
+
#
|
234
|
+
# Some tests give options in all lower case.
|
235
|
+
if k.downcase == 'authmechanismproperties'
|
236
|
+
expected[k] = ::Utils.downcase_keys(v)
|
345
237
|
end
|
346
|
-
|
347
|
-
|
238
|
+
# Ruby driver does not support snappy.
|
239
|
+
if k == 'compressors'
|
240
|
+
expected[k] = v.reject { |sub_v| sub_v == 'snappy' }
|
348
241
|
end
|
349
|
-
|
350
|
-
|
242
|
+
end
|
243
|
+
# We omit retryReads/retryWrites=true because some tests do not
|
244
|
+
# provide those.
|
245
|
+
%w(retryReads retryWrites).each do |k, v|
|
246
|
+
if expected[k] == true
|
247
|
+
expected.delete(k)
|
248
|
+
end
|
249
|
+
end
|
250
|
+
# Fix appName case.
|
251
|
+
if expected.key?('appname') && !expected.key?('appName')
|
252
|
+
expected['appName'] = expected.delete('appname')
|
351
253
|
end
|
352
254
|
end
|
353
255
|
end
|
@@ -406,8 +308,17 @@ def define_connection_string_spec_tests(test_paths, spec_cls = Mongo::Connection
|
|
406
308
|
expect(test.client).to match_auth(test)
|
407
309
|
end
|
408
310
|
|
409
|
-
|
410
|
-
|
311
|
+
if test.options
|
312
|
+
it 'creates a client with the correct options' do
|
313
|
+
mapped = Mongo::URI::OptionsMapper.new.ruby_to_smc(test.client.options)
|
314
|
+
# Connection string spec tests do not use canonical URI option names
|
315
|
+
actual = Utils.downcase_keys(mapped)
|
316
|
+
actual.delete('authsource')
|
317
|
+
expected = Mongo::ConnectionString.adjust_expected_mongo_client_options(
|
318
|
+
test.options,
|
319
|
+
)
|
320
|
+
actual.should == expected
|
321
|
+
end
|
411
322
|
end
|
412
323
|
|
413
324
|
if test.read_concern_expectation
|
@@ -22,9 +22,13 @@ describe 'Cmap' do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
let(:options) do
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
Mongo::Utils.shallow_symbolize_keys(Mongo::Client.canonicalize_ruby_options(
|
26
|
+
SpecConfig.instance.all_test_options,
|
27
|
+
)).update(monitoring_io: false).tap do |options|
|
28
|
+
# We have a wait queue timeout set in the test suite options, but having
|
29
|
+
# this option set interferes with assertions in the cmap spec tests.
|
30
|
+
options.delete(:wait_queue_timeout)
|
31
|
+
end
|
28
32
|
end
|
29
33
|
|
30
34
|
CMAP_TESTS.each do |file|
|
@@ -6,10 +6,14 @@ operations:
|
|
6
6
|
events:
|
7
7
|
- type: ConnectionCheckOutStarted
|
8
8
|
address: 42
|
9
|
+
- type: ConnectionCreated
|
10
|
+
connectionId: 1
|
11
|
+
address: 42
|
12
|
+
- type: ConnectionReady
|
13
|
+
connectionId: 1
|
14
|
+
address: 42
|
9
15
|
- type: ConnectionCheckedOut
|
10
16
|
connectionId: 1
|
11
17
|
address: 42
|
12
18
|
ignore:
|
13
19
|
- ConnectionPoolCreated
|
14
|
-
- ConnectionCreated
|
15
|
-
- ConnectionReady
|
@@ -49,3 +49,27 @@ tests:
|
|
49
49
|
auth: ~
|
50
50
|
options:
|
51
51
|
wtimeoutms: 10
|
52
|
+
-
|
53
|
+
description: "Empty integer option values are ignored"
|
54
|
+
uri: "mongodb://localhost/?maxIdleTimeMS="
|
55
|
+
valid: true
|
56
|
+
warning: true
|
57
|
+
hosts:
|
58
|
+
-
|
59
|
+
type: "hostname"
|
60
|
+
host: "localhost"
|
61
|
+
port: ~
|
62
|
+
auth: ~
|
63
|
+
options: ~
|
64
|
+
-
|
65
|
+
description: "Empty boolean option value are ignored"
|
66
|
+
uri: "mongodb://localhost/?journal="
|
67
|
+
valid: true
|
68
|
+
warning: true
|
69
|
+
hosts:
|
70
|
+
-
|
71
|
+
type: "hostname"
|
72
|
+
host: "localhost"
|
73
|
+
port: ~
|
74
|
+
auth: ~
|
75
|
+
options: ~
|
@@ -1,7 +1,5 @@
|
|
1
|
-
# This is a Ruby driver-specific test because other drivers
|
2
|
-
# do not allow discovering a standalone topology.
|
3
1
|
description: "Monitoring a discovered standalone connection"
|
4
|
-
uri: "mongodb://a:27017"
|
2
|
+
uri: "mongodb://a:27017/?directConnection=false"
|
5
3
|
phases:
|
6
4
|
-
|
7
5
|
responses:
|
@@ -1,5 +1,5 @@
|
|
1
|
-
description: "Monitoring a
|
2
|
-
uri: "mongodb://a:27017/?
|
1
|
+
description: "Monitoring a direct connection with repeated ismaster response"
|
2
|
+
uri: "mongodb://a:27017/?directConnection=true"
|
3
3
|
phases:
|
4
4
|
# phase 1
|
5
5
|
- responses: []
|
@@ -1,5 +1,5 @@
|
|
1
|
-
description: "Monitoring a
|
2
|
-
uri: "mongodb://a:27017/?
|
1
|
+
description: "Monitoring a direct connection - suppress update events for equal server descriptions"
|
2
|
+
uri: "mongodb://a:27017/?directConnection=true"
|
3
3
|
phases:
|
4
4
|
-
|
5
5
|
responses:
|
@@ -12,6 +12,31 @@ tests:
|
|
12
12
|
SERVICE_NAME: "other"
|
13
13
|
CANONICALIZE_HOST_NAME: true
|
14
14
|
authSource: "$external"
|
15
|
+
-
|
16
|
+
description: "Mixed case in auth mechanism properties is preserved"
|
17
|
+
uri: "mongodb://foo:bar@example.com/?authMechanism=GSSAPI&authMechanismProperties=PropertyName:PropertyValue&authSource=$external"
|
18
|
+
valid: true
|
19
|
+
warning: false
|
20
|
+
hosts: ~
|
21
|
+
auth: ~
|
22
|
+
options:
|
23
|
+
authMechanism: "GSSAPI"
|
24
|
+
authMechanismProperties:
|
25
|
+
PropertyName: PropertyValue
|
26
|
+
service_name: mongodb
|
27
|
+
authSource: "$external"
|
28
|
+
-
|
29
|
+
description: "Auth mechanism properties are all invalid"
|
30
|
+
uri: "mongodb://foo:bar@example.com/?authMechanism=GSSAPI&authMechanismProperties=PropertyName&authSource=$external"
|
31
|
+
valid: true
|
32
|
+
warning: true
|
33
|
+
hosts: ~
|
34
|
+
auth: ~
|
35
|
+
options:
|
36
|
+
authMechanism: "GSSAPI"
|
37
|
+
authMechanismProperties:
|
38
|
+
service_name: mongodb
|
39
|
+
authSource: "$external"
|
15
40
|
-
|
16
41
|
description: "Valid auth options are parsed correctly (SCRAM-SHA-1)"
|
17
42
|
uri: "mongodb://foo:bar@example.com/?authMechanism=SCRAM-SHA-1&authSource=authSourceDB"
|
@@ -28,7 +28,8 @@ tests:
|
|
28
28
|
warning: true
|
29
29
|
hosts: ~
|
30
30
|
auth: ~
|
31
|
-
|
31
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
32
|
+
options: ~
|
32
33
|
-
|
33
34
|
description: "Too low zlibCompressionLevel causes a warning"
|
34
35
|
uri: "mongodb://example.com/?compressors=zlib&zlibCompressionLevel=-2"
|
@@ -36,7 +37,8 @@ tests:
|
|
36
37
|
warning: true
|
37
38
|
hosts: ~
|
38
39
|
auth: ~
|
39
|
-
|
40
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
41
|
+
options: ~
|
40
42
|
-
|
41
43
|
description: "Too high zlibCompressionLevel causes a warning"
|
42
44
|
uri: "mongodb://example.com/?compressors=zlib&zlibCompressionLevel=10"
|
@@ -44,5 +46,6 @@ tests:
|
|
44
46
|
warning: true
|
45
47
|
hosts: ~
|
46
48
|
auth: ~
|
47
|
-
|
49
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
50
|
+
options: ~
|
48
51
|
|
@@ -15,6 +15,18 @@ tests:
|
|
15
15
|
-
|
16
16
|
dc: "ny"
|
17
17
|
maxStalenessSeconds: 120
|
18
|
+
-
|
19
|
+
description: "Case is preserved in read preference tag names and values"
|
20
|
+
uri: "mongodb://example.com/?readPreference=secondary&readPreferenceTags=DataCenter:NewYork"
|
21
|
+
valid: true
|
22
|
+
warning: false
|
23
|
+
hosts: ~
|
24
|
+
auth: ~
|
25
|
+
options:
|
26
|
+
readPreference: "secondary"
|
27
|
+
readPreferenceTags:
|
28
|
+
-
|
29
|
+
DataCenter: NewYork
|
18
30
|
-
|
19
31
|
description: "Invalid readPreferenceTags causes a warning"
|
20
32
|
uri: "mongodb://example.com/?readPreferenceTags=invalid"
|
@@ -23,6 +35,18 @@ tests:
|
|
23
35
|
hosts: ~
|
24
36
|
auth: ~
|
25
37
|
options: {}
|
38
|
+
# https://jira.mongodb.org/browse/DRIVERS-1369
|
39
|
+
-
|
40
|
+
description: "Valid and invalid readPreferenceTags mix"
|
41
|
+
uri: "mongodb://example.com/?readPreferenceTags=a:b,invalid"
|
42
|
+
valid: true
|
43
|
+
warning: true
|
44
|
+
hosts: ~
|
45
|
+
auth: ~
|
46
|
+
options:
|
47
|
+
readPreferenceTags:
|
48
|
+
-
|
49
|
+
a: b
|
26
50
|
-
|
27
51
|
description: "Non-numeric maxStalenessSeconds causes a warning"
|
28
52
|
uri: "mongodb://example.com/?maxStalenessSeconds=invalid"
|
@@ -149,7 +149,8 @@ tests:
|
|
149
149
|
warning: false
|
150
150
|
hosts: ~
|
151
151
|
auth: ~
|
152
|
-
|
152
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
153
|
+
options: ~
|
153
154
|
-
|
154
155
|
description: "tls=false and ssl=false doesn't warn"
|
155
156
|
uri: "mongodb://example.com/?tls=false&ssl=false"
|
@@ -157,7 +158,8 @@ tests:
|
|
157
158
|
warning: false
|
158
159
|
hosts: ~
|
159
160
|
auth: ~
|
160
|
-
|
161
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
162
|
+
options: ~
|
161
163
|
-
|
162
164
|
description: "ssl=true and tls=true doesn't warn"
|
163
165
|
uri: "mongodb://example.com/?ssl=true&tls=true"
|
@@ -165,7 +167,8 @@ tests:
|
|
165
167
|
warning: false
|
166
168
|
hosts: ~
|
167
169
|
auth: ~
|
168
|
-
|
170
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
171
|
+
options: ~
|
169
172
|
-
|
170
173
|
description: "ssl=false and tls=false doesn't warn"
|
171
174
|
uri: "mongodb://example.com/?ssl=false&tls=false"
|
@@ -173,7 +176,8 @@ tests:
|
|
173
176
|
warning: false
|
174
177
|
hosts: ~
|
175
178
|
auth: ~
|
176
|
-
|
179
|
+
# https://jira.mongodb.org/browse/DRIVERS-1368
|
180
|
+
options: ~
|
177
181
|
-
|
178
182
|
description: "tls=false and ssl=true raises error"
|
179
183
|
uri: "mongodb://example.com/?tls=false&ssl=true"
|
@@ -206,3 +210,155 @@ tests:
|
|
206
210
|
hosts: ~
|
207
211
|
auth: ~
|
208
212
|
options: {}
|
213
|
+
-
|
214
|
+
description: "tlsDisableOCSPEndpointCheck can be set to true"
|
215
|
+
uri: "mongodb://example.com/?tls=true&tlsDisableOCSPEndpointCheck=true"
|
216
|
+
valid: true
|
217
|
+
warning: false
|
218
|
+
hosts: ~
|
219
|
+
auth: ~
|
220
|
+
options:
|
221
|
+
tls: true
|
222
|
+
tlsDisableOCSPEndpointCheck: true
|
223
|
+
-
|
224
|
+
description: "tlsDisableOCSPEndpointCheck can be set to false"
|
225
|
+
uri: "mongodb://example.com/?tls=true&tlsDisableOCSPEndpointCheck=false"
|
226
|
+
valid: true
|
227
|
+
warning: false
|
228
|
+
hosts: ~
|
229
|
+
auth: ~
|
230
|
+
options:
|
231
|
+
tls: true
|
232
|
+
tlsDisableOCSPEndpointCheck: false
|
233
|
+
# 4 permutations of [tlsInsecure=true/false, tlsDisableOCSPEndpointCheck=true/false]
|
234
|
+
-
|
235
|
+
description: "tlsInsecure and tlsDisableOCSPEndpointCheck both present (and true) raises an error"
|
236
|
+
uri: "mongodb://example.com/?tlsInsecure=true&tlsDisableOCSPEndpointCheck=true"
|
237
|
+
valid: false
|
238
|
+
warning: false
|
239
|
+
hosts: ~
|
240
|
+
auth: ~
|
241
|
+
options: {}
|
242
|
+
-
|
243
|
+
description: "tlsInsecure=true and tlsDisableOCSPEndpointCheck=false raises an error"
|
244
|
+
uri: "mongodb://example.com/?tlsInsecure=true&tlsDisableOCSPEndpointCheck=false"
|
245
|
+
valid: false
|
246
|
+
warning: false
|
247
|
+
hosts: ~
|
248
|
+
auth: ~
|
249
|
+
options: {}
|
250
|
+
-
|
251
|
+
description: "tlsInsecure=false and tlsDisableOCSPEndpointCheck=true raises an error"
|
252
|
+
uri: "mongodb://example.com/?tlsInsecure=false&tlsDisableOCSPEndpointCheck=true"
|
253
|
+
valid: false
|
254
|
+
warning: false
|
255
|
+
hosts: ~
|
256
|
+
auth: ~
|
257
|
+
options: {}
|
258
|
+
-
|
259
|
+
description: "tlsInsecure and tlsDisableOCSPEndpointCheck both present (and false) raises an error"
|
260
|
+
uri: "mongodb://example.com/?tlsInsecure=false&tlsDisableOCSPEndpointCheck=false"
|
261
|
+
valid: false
|
262
|
+
warning: false
|
263
|
+
hosts: ~
|
264
|
+
auth: ~
|
265
|
+
options: {}
|
266
|
+
# 4 permutations of [tlsDisableOCSPEndpointCheck=true/false, tlsInsecure=true/false]
|
267
|
+
-
|
268
|
+
description: "tlsDisableOCSPEndpointCheck and tlsInsecure both present (and true) raises an error"
|
269
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=true&tlsInsecure=true"
|
270
|
+
valid: false
|
271
|
+
warning: false
|
272
|
+
hosts: ~
|
273
|
+
auth: ~
|
274
|
+
options: {}
|
275
|
+
-
|
276
|
+
description: "tlsDisableOCSPEndpointCheck=true and tlsInsecure=false raises an error"
|
277
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=true&tlsInsecure=false"
|
278
|
+
valid: false
|
279
|
+
warning: false
|
280
|
+
hosts: ~
|
281
|
+
auth: ~
|
282
|
+
options: {}
|
283
|
+
-
|
284
|
+
description: "tlsDisableOCSPEndpointCheck=false and tlsInsecure=true raises an error"
|
285
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=false&tlsInsecure=true"
|
286
|
+
valid: false
|
287
|
+
warning: false
|
288
|
+
hosts: ~
|
289
|
+
auth: ~
|
290
|
+
options: {}
|
291
|
+
-
|
292
|
+
description: "tlsDisableOCSPEndpointCheck and tlsInsecure both present (and false) raises an error"
|
293
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=false&tlsInsecure=false"
|
294
|
+
valid: false
|
295
|
+
warning: false
|
296
|
+
hosts: ~
|
297
|
+
auth: ~
|
298
|
+
options: {}
|
299
|
+
# 4 permutations of [tlsAllowInvalidCertificates=true/false, tlsDisableOCSPEndpointCheck=true/false]
|
300
|
+
-
|
301
|
+
description: "tlsAllowInvalidCertificates and tlsDisableOCSPEndpointCheck both present (and true) raises an error"
|
302
|
+
uri: "mongodb://example.com/?tlsAllowInvalidCertificates=true&tlsDisableOCSPEndpointCheck=true"
|
303
|
+
valid: false
|
304
|
+
warning: false
|
305
|
+
hosts: ~
|
306
|
+
auth: ~
|
307
|
+
options: {}
|
308
|
+
-
|
309
|
+
description: "tlsAllowInvalidCertificates=true and tlsDisableOCSPEndpointCheck=false raises an error"
|
310
|
+
uri: "mongodb://example.com/?tlsAllowInvalidCertificates=true&tlsDisableOCSPEndpointCheck=false"
|
311
|
+
valid: false
|
312
|
+
warning: false
|
313
|
+
hosts: ~
|
314
|
+
auth: ~
|
315
|
+
options: {}
|
316
|
+
-
|
317
|
+
description: "tlsAllowInvalidCertificates=false and tlsDisableOCSPEndpointCheck=true raises an error"
|
318
|
+
uri: "mongodb://example.com/?tlsAllowInvalidCertificates=false&tlsDisableOCSPEndpointCheck=true"
|
319
|
+
valid: false
|
320
|
+
warning: false
|
321
|
+
hosts: ~
|
322
|
+
auth: ~
|
323
|
+
options: {}
|
324
|
+
-
|
325
|
+
description: "tlsAllowInvalidCertificates and tlsDisableOCSPEndpointCheck both present (and false) raises an error"
|
326
|
+
uri: "mongodb://example.com/?tlsAllowInvalidCertificates=false&tlsDisableOCSPEndpointCheck=false"
|
327
|
+
valid: false
|
328
|
+
warning: false
|
329
|
+
hosts: ~
|
330
|
+
auth: ~
|
331
|
+
options: {}
|
332
|
+
# 4 permutations of [tlsDisableOCSPEndpointCheck=true/false, tlsAllowInvalidCertificates=true/false]
|
333
|
+
-
|
334
|
+
description: "tlsDisableOCSPEndpointCheck and tlsAllowInvalidCertificates both present (and true) raises an error"
|
335
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=true&tlsAllowInvalidCertificates=true"
|
336
|
+
valid: false
|
337
|
+
warning: false
|
338
|
+
hosts: ~
|
339
|
+
auth: ~
|
340
|
+
options: {}
|
341
|
+
-
|
342
|
+
description: "tlsDisableOCSPEndpointCheck=true and tlsAllowInvalidCertificates=false raises an error"
|
343
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=true&tlsAllowInvalidCertificates=false"
|
344
|
+
valid: false
|
345
|
+
warning: false
|
346
|
+
hosts: ~
|
347
|
+
auth: ~
|
348
|
+
options: {}
|
349
|
+
-
|
350
|
+
description: "tlsDisableOCSPEndpointCheck=false and tlsAllowInvalidCertificates=true raises an error"
|
351
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=false&tlsAllowInvalidCertificates=true"
|
352
|
+
valid: false
|
353
|
+
warning: false
|
354
|
+
hosts: ~
|
355
|
+
auth: ~
|
356
|
+
options: {}
|
357
|
+
-
|
358
|
+
description: "tlsDisableOCSPEndpointCheck and tlsAllowInvalidCertificates both present (and false) raises an error"
|
359
|
+
uri: "mongodb://example.com/?tlsDisableOCSPEndpointCheck=false&tlsAllowInvalidCertificates=false"
|
360
|
+
valid: false
|
361
|
+
warning: false
|
362
|
+
hosts: ~
|
363
|
+
auth: ~
|
364
|
+
options: {}
|