mongo 2.15.1 → 2.16.0.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +1 -1
- data/lib/mongo/bulk_write.rb +2 -2
- data/lib/mongo/client.rb +45 -5
- data/lib/mongo/cluster/periodic_executor.rb +4 -3
- data/lib/mongo/cluster/reapers/cursor_reaper.rb +76 -43
- data/lib/mongo/cluster/sdam_flow.rb +9 -3
- data/lib/mongo/cluster/topology/base.rb +13 -9
- data/lib/mongo/cluster/topology/load_balanced.rb +102 -0
- data/lib/mongo/cluster/topology.rb +28 -8
- data/lib/mongo/cluster.rb +136 -51
- data/lib/mongo/collection/view/aggregation.rb +5 -10
- data/lib/mongo/collection/view/builder/aggregation.rb +6 -5
- data/lib/mongo/collection/view/builder/map_reduce.rb +12 -49
- data/lib/mongo/collection/view/builder.rb +0 -4
- data/lib/mongo/collection/view/iterable.rb +42 -18
- data/lib/mongo/collection/view/map_reduce.rb +39 -15
- data/lib/mongo/collection/view/readable.rb +60 -51
- data/lib/mongo/collection/view/writable.rb +178 -175
- data/lib/mongo/collection/view.rb +15 -21
- data/lib/mongo/collection.rb +13 -13
- data/lib/mongo/cursor/kill_spec.rb +38 -0
- data/lib/mongo/cursor.rb +62 -31
- data/lib/mongo/database/view.rb +1 -1
- data/lib/mongo/error/bad_load_balancer_target.rb +26 -0
- data/lib/mongo/error/missing_service_id.rb +26 -0
- data/lib/mongo/error/no_service_connection_available.rb +49 -0
- data/lib/mongo/error/notable.rb +7 -0
- data/lib/mongo/error.rb +3 -0
- data/lib/mongo/grid/fs_bucket.rb +21 -2
- data/lib/mongo/id.rb +7 -5
- data/lib/mongo/index/view.rb +22 -41
- data/lib/mongo/monitoring/event/cmap/pool_cleared.rb +7 -4
- data/lib/mongo/monitoring/event/command_failed.rb +1 -1
- data/lib/mongo/monitoring/event/command_started.rb +2 -0
- data/lib/mongo/monitoring/publishable.rb +2 -2
- data/lib/mongo/operation/aggregate/command.rb +8 -0
- data/lib/mongo/operation/context.rb +19 -1
- data/lib/mongo/operation/count/command.rb +6 -0
- data/lib/mongo/operation/count/op_msg.rb +6 -0
- data/lib/mongo/operation/create/command.rb +7 -1
- data/lib/mongo/operation/create/op_msg.rb +7 -0
- data/lib/mongo/operation/create_index/command.rb +17 -1
- data/lib/mongo/operation/create_index/op_msg.rb +17 -4
- data/lib/mongo/operation/delete/command.rb +6 -3
- data/lib/mongo/operation/delete/legacy.rb +9 -2
- data/lib/mongo/operation/delete/op_msg.rb +8 -1
- data/lib/mongo/operation/distinct/command.rb +6 -0
- data/lib/mongo/operation/distinct/op_msg.rb +7 -0
- data/lib/mongo/operation/explain/command.rb +13 -1
- data/lib/mongo/operation/explain/legacy.rb +12 -5
- data/lib/mongo/operation/explain/op_msg.rb +9 -1
- data/lib/mongo/operation/find/builder/command.rb +110 -0
- data/lib/mongo/{collection/view → operation/find}/builder/flags.rb +10 -14
- data/lib/mongo/operation/find/builder/legacy.rb +123 -0
- data/lib/mongo/{collection/view → operation/find}/builder/modifiers.rb +31 -25
- data/lib/mongo/{cursor → operation/find}/builder.rb +4 -4
- data/lib/mongo/operation/find/command.rb +9 -0
- data/lib/mongo/operation/find/legacy.rb +10 -1
- data/lib/mongo/operation/find/op_msg.rb +12 -0
- data/lib/mongo/operation/find.rb +1 -0
- data/lib/mongo/operation/get_more/command.rb +1 -0
- data/lib/mongo/operation/get_more/command_builder.rb +38 -0
- data/lib/mongo/operation/get_more/op_msg.rb +1 -0
- data/lib/mongo/operation/get_more.rb +1 -0
- data/lib/mongo/operation/kill_cursors/command.rb +8 -0
- data/lib/mongo/operation/kill_cursors/command_builder.rb +35 -0
- data/lib/mongo/operation/kill_cursors/legacy.rb +2 -1
- data/lib/mongo/operation/kill_cursors/op_msg.rb +10 -0
- data/lib/mongo/operation/kill_cursors.rb +1 -0
- data/lib/mongo/operation/map_reduce/command.rb +8 -0
- data/lib/mongo/operation/map_reduce/op_msg.rb +1 -1
- data/lib/mongo/operation/shared/executable.rb +15 -1
- data/lib/mongo/operation/shared/polymorphic_operation.rb +1 -1
- data/lib/mongo/operation/shared/read_preference_supported.rb +3 -1
- data/lib/mongo/operation/shared/response_handling.rb +1 -0
- data/lib/mongo/operation/shared/sessions_supported.rb +12 -12
- data/lib/mongo/operation/shared/specifiable.rb +11 -29
- data/lib/mongo/operation/shared/validatable.rb +87 -0
- data/lib/mongo/operation/shared/write.rb +1 -1
- data/lib/mongo/operation/update/command.rb +6 -3
- data/lib/mongo/operation/update/legacy.rb +19 -11
- data/lib/mongo/operation/update/op_msg.rb +7 -4
- data/lib/mongo/operation/write_command/command.rb +51 -0
- data/lib/mongo/operation/write_command/op_msg.rb +43 -0
- data/lib/mongo/operation/write_command.rb +32 -0
- data/lib/mongo/operation.rb +10 -0
- data/lib/mongo/protocol/query.rb +35 -18
- data/lib/mongo/server/connection.rb +25 -3
- data/lib/mongo/server/connection_base.rb +12 -1
- data/lib/mongo/server/connection_common.rb +38 -1
- data/lib/mongo/server/connection_pool/generation_manager.rb +71 -0
- data/lib/mongo/server/connection_pool.rb +100 -27
- data/lib/mongo/server/description/features.rb +17 -16
- data/lib/mongo/server/description/load_balancer.rb +33 -0
- data/lib/mongo/server/description.rb +85 -6
- data/lib/mongo/server/monitor/connection.rb +5 -6
- data/lib/mongo/server/monitor.rb +2 -1
- data/lib/mongo/server/pending_connection.rb +47 -31
- data/lib/mongo/server.rb +73 -26
- data/lib/mongo/server_selector/base.rb +5 -1
- data/lib/mongo/session/session_pool.rb +11 -0
- data/lib/mongo/session.rb +21 -1
- data/lib/mongo/socket/ocsp_verifier.rb +6 -37
- data/lib/mongo/uri/options_mapper.rb +1 -0
- data/lib/mongo/uri/srv_protocol.rb +6 -8
- data/lib/mongo/uri.rb +18 -0
- data/lib/mongo/utils.rb +0 -7
- data/lib/mongo/version.rb +1 -1
- data/mongo.gemspec +1 -1
- data/spec/integration/auth_spec.rb +31 -1
- data/spec/integration/awaited_ismaster_spec.rb +1 -1
- data/spec/integration/bulk_write_spec.rb +1 -1
- data/spec/integration/change_stream_spec.rb +3 -3
- data/spec/integration/client_construction_spec.rb +54 -0
- data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +1 -1
- data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +1 -1
- data/spec/integration/client_side_encryption/bson_size_limit_spec.rb +1 -1
- data/spec/integration/client_side_encryption/data_key_spec.rb +1 -1
- data/spec/integration/client_spec.rb +2 -0
- data/spec/integration/command_monitoring_spec.rb +1 -1
- data/spec/integration/command_spec.rb +1 -1
- data/spec/integration/connection_spec.rb +52 -35
- data/spec/integration/crud_spec.rb +174 -1
- data/spec/integration/cursor_pinning_spec.rb +121 -0
- data/spec/integration/cursor_reaping_spec.rb +8 -4
- data/spec/integration/fork_reconnect_spec.rb +1 -5
- data/spec/integration/get_more_spec.rb +1 -1
- data/spec/integration/heartbeat_events_spec.rb +1 -1
- data/spec/integration/map_reduce_spec.rb +77 -0
- data/spec/integration/query_cache_spec.rb +2 -2
- data/spec/integration/query_cache_transactions_spec.rb +1 -1
- data/spec/integration/read_concern_spec.rb +1 -1
- data/spec/integration/read_preference_spec.rb +1 -1
- data/spec/integration/reconnect_spec.rb +30 -12
- data/spec/integration/retryable_errors_spec.rb +1 -1
- data/spec/integration/retryable_writes/retryable_writes_36_and_older_spec.rb +1 -1
- data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +1 -1
- data/spec/integration/sdam_error_handling_spec.rb +5 -3
- data/spec/integration/sdam_events_spec.rb +35 -19
- data/spec/integration/sdam_prose_spec.rb +1 -1
- data/spec/integration/server_monitor_spec.rb +1 -0
- data/spec/integration/server_selector_spec.rb +22 -5
- data/spec/integration/server_spec.rb +2 -0
- data/spec/integration/srv_monitoring_spec.rb +1 -1
- data/spec/integration/step_down_spec.rb +1 -1
- data/spec/integration/transaction_pinning_spec.rb +120 -0
- data/spec/integration/versioned_api_examples_spec.rb +45 -0
- data/spec/integration/x509_auth_spec.rb +1 -1
- data/spec/lite_spec_helper.rb +1 -2
- data/spec/mongo/address/unix_spec.rb +1 -0
- data/spec/mongo/auth/cr_spec.rb +2 -3
- data/spec/mongo/auth/ldap_spec.rb +2 -3
- data/spec/mongo/auth/scram_spec.rb +2 -3
- data/spec/mongo/auth/user/view_spec.rb +1 -1
- data/spec/mongo/auth/x509_spec.rb +2 -3
- data/spec/mongo/bulk_write_spec.rb +3 -3
- data/spec/mongo/client_construction_spec.rb +259 -28
- data/spec/mongo/client_spec.rb +6 -4
- data/spec/mongo/cluster/cursor_reaper_spec.rb +36 -21
- data/spec/mongo/cluster/periodic_executor_spec.rb +3 -1
- data/spec/mongo/cluster_spec.rb +44 -3
- data/spec/mongo/collection/view/aggregation_spec.rb +1 -1
- data/spec/mongo/collection/view/builder/find_command_spec.rb +4 -0
- data/spec/mongo/collection/view/builder/op_query_spec.rb +4 -0
- data/spec/mongo/collection/view/map_reduce_spec.rb +1 -1
- data/spec/mongo/collection_crud_spec.rb +7 -2
- data/spec/mongo/collection_ddl_spec.rb +1 -1
- data/spec/mongo/collection_spec.rb +1 -1
- data/spec/mongo/cursor/builder/get_more_command_spec.rb +4 -0
- data/spec/mongo/cursor/builder/op_get_more_spec.rb +4 -0
- data/spec/mongo/cursor_spec.rb +15 -5
- data/spec/mongo/database_spec.rb +15 -15
- data/spec/mongo/error/operation_failure_heavy_spec.rb +1 -1
- data/spec/mongo/grid/fs_bucket_spec.rb +18 -12
- data/spec/mongo/grid/stream/write_spec.rb +3 -9
- data/spec/mongo/grid/stream_spec.rb +1 -1
- data/spec/mongo/index/view_spec.rb +2 -2
- data/spec/mongo/operation/delete/op_msg_spec.rb +1 -1
- data/spec/mongo/{collection/view → operation/find}/builder/flags_spec.rb +2 -2
- data/spec/mongo/{collection/view → operation/find}/builder/modifiers_spec.rb +2 -2
- data/spec/mongo/operation/find/legacy_spec.rb +1 -0
- data/spec/mongo/operation/insert/bulk_spec.rb +1 -1
- data/spec/mongo/operation/insert/op_msg_spec.rb +1 -1
- data/spec/mongo/operation/kill_cursors_spec.rb +4 -1
- data/spec/mongo/operation/read_preference_legacy_spec.rb +4 -0
- data/spec/mongo/operation/read_preference_op_msg_spec.rb +2 -0
- data/spec/mongo/operation/update/bulk_spec.rb +1 -1
- data/spec/mongo/operation/update/op_msg_spec.rb +1 -1
- data/spec/mongo/query_cache_spec.rb +6 -2
- data/spec/mongo/server/connection_common_spec.rb +62 -11
- data/spec/mongo/server/connection_pool_spec.rb +73 -7
- data/spec/mongo/server/connection_spec.rb +138 -43
- data/spec/mongo/server/description_spec.rb +1 -1
- data/spec/mongo/server/monitor_spec.rb +4 -3
- data/spec/mongo/session/session_pool_spec.rb +42 -10
- data/spec/mongo/session_transaction_spec.rb +15 -30
- data/spec/mongo/socket/unix_spec.rb +1 -0
- data/spec/mongo/uri_option_parsing_spec.rb +38 -5
- data/spec/runners/change_streams/test.rb +1 -1
- data/spec/runners/cmap.rb +1 -1
- data/spec/runners/connection_string.rb +7 -3
- data/spec/runners/crud/operation.rb +5 -3
- data/spec/runners/crud/requirement.rb +1 -0
- data/spec/runners/crud.rb +1 -1
- data/spec/runners/sdam.rb +2 -1
- data/spec/runners/transactions/test.rb +2 -2
- data/spec/runners/unified/assertions.rb +2 -3
- data/spec/runners/unified/event_subscriber.rb +2 -2
- data/spec/runners/unified/test.rb +3 -0
- data/spec/runners/unified.rb +1 -1
- data/spec/shared/lib/mrss/constraints.rb +11 -5
- data/spec/shared/lib/mrss/event_subscriber.rb +200 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +17 -12
- data/spec/shared/share/Dockerfile.erb +2 -1
- data/spec/shared/shlib/server.sh +70 -20
- data/spec/spec_tests/change_streams_spec.rb +1 -1
- data/spec/spec_tests/cmap_spec.rb +4 -1
- data/spec/spec_tests/command_monitoring_spec.rb +2 -2
- data/spec/spec_tests/data/command_monitoring/find.yml +9 -9
- data/spec/spec_tests/data/crud/read/aggregate-collation.yml +2 -1
- data/spec/spec_tests/data/crud/read/aggregate-out.yml +1 -0
- data/spec/spec_tests/data/crud/read/count-collation.yml +2 -1
- data/spec/spec_tests/data/crud/read/distinct-collation.yml +2 -1
- data/spec/spec_tests/data/crud/read/find-collation.yml +2 -1
- data/spec/spec_tests/data/crud/write/bulkWrite-collation.yml +2 -1
- data/spec/spec_tests/data/crud/write/deleteMany-collation.yml +2 -1
- data/spec/spec_tests/data/crud/write/deleteOne-collation.yml +2 -1
- data/spec/spec_tests/data/crud/write/findOneAndDelete-collation.yml +3 -2
- data/spec/spec_tests/data/crud/write/findOneAndReplace-collation.yml +2 -1
- data/spec/spec_tests/data/crud/write/findOneAndUpdate-collation.yml +3 -2
- data/spec/spec_tests/data/crud/write/replaceOne-collation.yml +3 -2
- data/spec/spec_tests/data/crud/write/updateMany-collation.yml +2 -1
- data/spec/spec_tests/data/crud/write/updateOne-collation.yml +2 -1
- data/spec/spec_tests/data/load_balancers/event-monitoring.yml +99 -0
- data/spec/spec_tests/data/load_balancers/lb-connection-establishment.yml +36 -0
- data/spec/spec_tests/data/load_balancers/non-lb-connection-establishment.yml +56 -0
- data/spec/spec_tests/data/load_balancers/server-selection.yml +50 -0
- data/spec/spec_tests/data/retryable_reads/changeStreams-client.watch-serverErrors.yml +1 -1
- data/spec/spec_tests/data/retryable_reads/changeStreams-client.watch.yml +1 -1
- data/spec/spec_tests/data/retryable_reads/changeStreams-db.coll.watch-serverErrors.yml +1 -1
- data/spec/spec_tests/data/retryable_reads/changeStreams-db.coll.watch.yml +1 -1
- data/spec/spec_tests/data/retryable_reads/changeStreams-db.watch-serverErrors.yml +1 -1
- data/spec/spec_tests/data/retryable_reads/changeStreams-db.watch.yml +1 -1
- data/spec/spec_tests/data/retryable_reads/mapReduce.yml +3 -1
- data/spec/spec_tests/data/sdam/load-balanced/discover_load_balancer.yml +25 -0
- data/spec/spec_tests/data/sdam_integration/find-network-error.yml +2 -0
- data/spec/spec_tests/data/sdam_integration/find-shutdown-error.yml +2 -0
- data/spec/spec_tests/data/sdam_integration/hello-command-error.yml +3 -1
- data/spec/spec_tests/data/sdam_integration/hello-network-error.yml +3 -1
- data/spec/spec_tests/data/sdam_integration/hello-timeout.yml +2 -0
- data/spec/spec_tests/data/sdam_integration/insert-network-error.yml +2 -0
- data/spec/spec_tests/data/sdam_integration/insert-shutdown-error.yml +2 -0
- data/spec/spec_tests/data/sdam_monitoring/load_balancer.yml +65 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-directConnection.yml +13 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-replicaSet-errors.yml +6 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-true-multiple-hosts.yml +5 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-true-txt.yml +10 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/direct-connection-false.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/direct-connection-true.yml +0 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/encoded-userinfo-and-db.yml +15 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/loadBalanced-false-txt.yml +10 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/longer-parent-in-return.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/misformatted-option.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/no-results.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/not-enough-parts.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/one-result-default-port.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/one-txt-record-multiple-strings.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/one-txt-record.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/parent-part-mismatch1.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/parent-part-mismatch2.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/parent-part-mismatch3.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/parent-part-mismatch4.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/parent-part-mismatch5.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/returned-parent-too-short.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/returned-parent-wrong.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/two-results-default-port.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/two-results-nonstandard-port.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/two-txt-records.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/txt-record-not-allowed-option.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/txt-record-with-overridden-ssl-option.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/txt-record-with-overridden-uri-option.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/txt-record-with-unallowed-option.yml +0 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/uri-with-admin-database.yml +13 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/uri-with-auth.yml +12 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/uri-with-port.yml +0 -0
- data/spec/spec_tests/data/{dns_seedlist_discovery → seed_list_discovery/replica-set}/uri-with-two-hosts.yml +0 -0
- data/spec/spec_tests/data/transactions/retryable-abort-errorLabels.yml +2 -0
- data/spec/spec_tests/data/transactions/retryable-abort.yml +2 -0
- data/spec/spec_tests/data/transactions/retryable-commit-errorLabels.yml +2 -0
- data/spec/spec_tests/data/transactions/retryable-commit.yml +2 -0
- data/spec/spec_tests/data/transactions/retryable-writes.yml +2 -0
- data/spec/spec_tests/data/uri_options/connection-options.yml +60 -0
- data/spec/spec_tests/load_balancers_spec.rb +15 -0
- data/spec/spec_tests/retryable_reads_spec.rb +2 -2
- data/spec/spec_tests/retryable_writes_spec.rb +1 -1
- data/spec/spec_tests/sdam_integration_spec.rb +1 -1
- data/spec/spec_tests/sdam_monitoring_spec.rb +10 -5
- data/spec/spec_tests/sdam_spec.rb +1 -1
- data/spec/spec_tests/seed_list_discovery_spec.rb +118 -0
- data/spec/spec_tests/uri_options_spec.rb +4 -4
- data/spec/stress/fork_reconnect_stress_spec.rb +1 -5
- data/spec/support/certificates/atlas-ocsp-ca.crt +82 -90
- data/spec/support/certificates/atlas-ocsp.crt +127 -122
- data/spec/support/common_shortcuts.rb +2 -3
- data/spec/support/matchers.rb +13 -0
- data/spec/support/shared/auth_context.rb +16 -0
- data/spec/support/shared/session.rb +2 -2
- data/spec/support/spec_config.rb +9 -10
- data/spec/support/using_hash.rb +31 -0
- data/spec/support/utils.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +120 -76
- metadata.gz.sig +0 -0
- data/lib/mongo/collection/view/builder/find_command.rb +0 -173
- data/lib/mongo/collection/view/builder/op_query.rb +0 -94
- data/lib/mongo/cursor/builder/get_more_command.rb +0 -80
- data/lib/mongo/cursor/builder/kill_cursors_command.rb +0 -111
- data/lib/mongo/cursor/builder/op_get_more.rb +0 -64
- data/lib/mongo/cursor/builder/op_kill_cursors.rb +0 -106
- data/lib/mongo/server/context.rb +0 -72
- data/spec/mongo/cursor/builder/op_kill_cursors_spec.rb +0 -66
- data/spec/runners/unified/using_hash.rb +0 -34
- data/spec/spec_tests/dns_seedlist_discovery_spec.rb +0 -79
- data/spec/support/event_subscriber.rb +0 -221
@@ -7,7 +7,7 @@ require 'runners/crud'
|
|
7
7
|
|
8
8
|
describe 'Retryable reads spec tests' do
|
9
9
|
require_wired_tiger
|
10
|
-
|
10
|
+
require_no_multi_mongos
|
11
11
|
|
12
12
|
define_crud_spec_tests(RETRYABLE_READS_TESTS) do |spec, req, test|
|
13
13
|
let(:client) do
|
@@ -19,7 +19,7 @@ describe 'Retryable reads spec tests' do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
describe 'Retryable reads spec tests - legacy' do
|
22
|
-
|
22
|
+
require_no_multi_mongos
|
23
23
|
|
24
24
|
define_crud_spec_tests(RETRYABLE_READS_TESTS) do |spec, req, test|
|
25
25
|
let(:client_options) do
|
@@ -7,7 +7,7 @@ require 'runners/crud'
|
|
7
7
|
|
8
8
|
describe 'Retryable writes spec tests' do
|
9
9
|
require_wired_tiger
|
10
|
-
|
10
|
+
require_no_multi_mongos
|
11
11
|
|
12
12
|
# Do not run these tests when write retries are disabled globally -
|
13
13
|
# the tests won't work in that case and testing them with retries enabled
|
@@ -9,7 +9,7 @@ require 'runners/transactions'
|
|
9
9
|
SDAM_INTEGRATION_TESTS = Dir.glob("#{CURRENT_PATH}/spec_tests/data/sdam_integration/*.yml").sort
|
10
10
|
|
11
11
|
describe 'SDAM integration tests' do
|
12
|
-
|
12
|
+
require_no_multi_mongos
|
13
13
|
require_wired_tiger
|
14
14
|
|
15
15
|
define_transactions_spec_tests(SDAM_INTEGRATION_TESTS)
|
@@ -16,7 +16,7 @@ describe 'SDAM Monitoring' do
|
|
16
16
|
context("#{spec.description} (#{file.sub(%r'.*/data/sdam_monitoring/', '')})") do
|
17
17
|
|
18
18
|
before(:all) do
|
19
|
-
@subscriber = PhasedEventSubscriber.new
|
19
|
+
@subscriber = Mrss::PhasedEventSubscriber.new
|
20
20
|
sdam_proc = lambda do |client|
|
21
21
|
client.subscribe(Mongo::Monitoring::SERVER_OPENING, @subscriber)
|
22
22
|
client.subscribe(Mongo::Monitoring::SERVER_CLOSED, @subscriber)
|
@@ -39,8 +39,13 @@ describe 'SDAM Monitoring' do
|
|
39
39
|
# Since we set monitoring_io: false, servers are not monitored
|
40
40
|
# by the cluster. Start monitoring on them manually (this publishes
|
41
41
|
# the server opening event but, again due to monitoring_io being
|
42
|
-
# false, does not do network I/O or change server status)
|
43
|
-
|
42
|
+
# false, does not do network I/O or change server status).
|
43
|
+
#
|
44
|
+
# If the server is a load balancer, it doesn't normally get monitored
|
45
|
+
# so don't start here either.
|
46
|
+
unless server.load_balancer?
|
47
|
+
server.start_monitoring
|
48
|
+
end
|
44
49
|
end
|
45
50
|
end
|
46
51
|
|
@@ -53,7 +58,7 @@ describe 'SDAM Monitoring' do
|
|
53
58
|
context("Phase: #{phase_index + 1}") do
|
54
59
|
|
55
60
|
before(:all) do
|
56
|
-
phase.responses
|
61
|
+
phase.responses&.each do |response|
|
57
62
|
# For each response in the phase, we need to change that server's description.
|
58
63
|
server = find_server(@client, response.address)
|
59
64
|
server ||= @servers_cache[response.address.to_s]
|
@@ -68,7 +73,7 @@ describe 'SDAM Monitoring' do
|
|
68
73
|
result['minWireVersion'] ||= 0
|
69
74
|
result['maxWireVersion'] ||= 0
|
70
75
|
new_description = Mongo::Server::Description.new(
|
71
|
-
server.description.address, result, 0.5)
|
76
|
+
server.description.address, result, average_round_trip_time: 0.5)
|
72
77
|
@client.cluster.run_sdam_flow(server.description, new_description)
|
73
78
|
end
|
74
79
|
@subscriber.phase_finished(phase_index)
|
@@ -98,7 +98,7 @@ describe 'Server Discovery and Monitoring' do
|
|
98
98
|
result['minWireVersion'] ||= 0
|
99
99
|
result['maxWireVersion'] ||= 0
|
100
100
|
new_description = Mongo::Server::Description.new(
|
101
|
-
server.description.address, result, 0.5)
|
101
|
+
server.description.address, result, average_round_trip_time: 0.5)
|
102
102
|
@client.cluster.run_sdam_flow(server.description, new_description)
|
103
103
|
end
|
104
104
|
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'lite_spec_helper'
|
5
|
+
|
6
|
+
require 'support/using_hash'
|
7
|
+
require 'runners/connection_string'
|
8
|
+
|
9
|
+
SEED_LIST_DISCOVERY_TESTS = Dir.glob("#{CURRENT_PATH}/spec_tests/data/seed_list_discovery/**/*.yml").sort
|
10
|
+
|
11
|
+
describe 'DNS Seedlist Discovery' do
|
12
|
+
require_external_connectivity
|
13
|
+
|
14
|
+
include Mongo::ConnectionString
|
15
|
+
|
16
|
+
SEED_LIST_DISCOVERY_TESTS.each do |test_path|
|
17
|
+
|
18
|
+
spec = YAML.load(File.read(test_path))
|
19
|
+
|
20
|
+
test = Mongo::ConnectionString::Test.new(spec)
|
21
|
+
|
22
|
+
context(File.basename(test_path)) do
|
23
|
+
|
24
|
+
if test.raise_error?
|
25
|
+
context 'the uri is invalid' do
|
26
|
+
|
27
|
+
let(:valid_errors) do
|
28
|
+
[
|
29
|
+
Mongo::Error::InvalidTXTRecord,
|
30
|
+
Mongo::Error::NoSRVRecords,
|
31
|
+
Mongo::Error::InvalidURI,
|
32
|
+
Mongo::Error::MismatchedDomain,
|
33
|
+
# This is unfortunate. RUBY-2624
|
34
|
+
ArgumentError,
|
35
|
+
]
|
36
|
+
end
|
37
|
+
|
38
|
+
let(:error) do
|
39
|
+
begin
|
40
|
+
test.client
|
41
|
+
rescue => ex
|
42
|
+
end
|
43
|
+
ex
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'raises an error' do
|
47
|
+
expect(valid_errors).to include(error.class)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
else
|
52
|
+
|
53
|
+
context 'the uri is valid' do
|
54
|
+
|
55
|
+
it 'does not raise an exception' do
|
56
|
+
expect(test.uri).to be_a(Mongo::URI::SRVProtocol)
|
57
|
+
end
|
58
|
+
|
59
|
+
if test.seeds
|
60
|
+
# DNS seed list tests specify both seeds and hosts.
|
61
|
+
# To get the hosts, the client must do SDAM (as required in the
|
62
|
+
# spec tests' description), but this isn't testing DNS seed list -
|
63
|
+
# it is testing SDAM. Plus, all of the hosts are always the same.
|
64
|
+
# If seed list is given in the expectations, just test the seed
|
65
|
+
# list and not the expanded hosts.
|
66
|
+
it 'creates a client with the correct seeds' do
|
67
|
+
expect(test.client).to have_hosts(test, test.seeds)
|
68
|
+
end
|
69
|
+
else
|
70
|
+
it 'creates a client with the correct hosts' do
|
71
|
+
expect(test.client).to have_hosts(test, test.hosts)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
if test.expected_options
|
76
|
+
it 'creates a client with the correct uri options' do
|
77
|
+
mapped = Mongo::URI::OptionsMapper.new.ruby_to_smc(test.client.options)
|
78
|
+
# Connection string spec tests do not use canonical URI option names
|
79
|
+
actual = Utils.downcase_keys(mapped)
|
80
|
+
expected = Utils.downcase_keys(test.expected_options)
|
81
|
+
# SRV tests use ssl URI option instead of tls one
|
82
|
+
if expected.key?('ssl') && !expected.key?('tls')
|
83
|
+
expected['tls'] = expected.delete('ssl')
|
84
|
+
end
|
85
|
+
# The client object contains auth source in options which
|
86
|
+
# isn't asserted in some tests.
|
87
|
+
if actual.key?('authsource') && !expected.key?('authsource')
|
88
|
+
actual.delete('authsource')
|
89
|
+
end
|
90
|
+
actual.should == expected
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
if test.non_uri_options
|
95
|
+
it 'creates a client with the correct non-uri options' do
|
96
|
+
opts = UsingHash[test.non_uri_options]
|
97
|
+
if user = opts.use('user')
|
98
|
+
test.client.options[:user].should == user
|
99
|
+
end
|
100
|
+
if password = opts.use('password')
|
101
|
+
test.client.options[:password].should == password
|
102
|
+
end
|
103
|
+
if db = opts.use('db')
|
104
|
+
test.client.database.name.should == db
|
105
|
+
end
|
106
|
+
if auth_source = opts.use('auth_database')
|
107
|
+
Mongo::Auth::User.new(test.client.options).auth_source == auth_source
|
108
|
+
end
|
109
|
+
unless opts.empty?
|
110
|
+
raise "Unhandled keys: #{opts}"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -52,8 +52,8 @@ describe 'URI options' do
|
|
52
52
|
expect(test.client).to match_auth(test)
|
53
53
|
end
|
54
54
|
|
55
|
-
if test.
|
56
|
-
if
|
55
|
+
if opts = test.expected_options
|
56
|
+
if opts['compressors'] && opts['compressors'].include?('snappy')
|
57
57
|
before do
|
58
58
|
unless ENV.fetch('BUNDLE_GEMFILE', '') =~ /snappy/
|
59
59
|
skip "This test requires snappy compression"
|
@@ -61,7 +61,7 @@ describe 'URI options' do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
if
|
64
|
+
if opts['compressors'] && opts['compressors'].include?('zstd')
|
65
65
|
before do
|
66
66
|
unless ENV.fetch('BUNDLE_GEMFILE', '') =~ /zstd/
|
67
67
|
skip "This test requires zstd compression"
|
@@ -72,7 +72,7 @@ describe 'URI options' do
|
|
72
72
|
it 'creates a client with the correct options' do
|
73
73
|
mapped = Mongo::URI::OptionsMapper.new.ruby_to_smc(test.client.options)
|
74
74
|
expected = Mongo::ConnectionString.adjust_expected_mongo_client_options(
|
75
|
-
|
75
|
+
opts,
|
76
76
|
)
|
77
77
|
mapped.should == expected
|
78
78
|
end
|
@@ -10,11 +10,7 @@ describe 'fork reconnect' do
|
|
10
10
|
# On multi-shard sharded clusters a succeeding write request does not
|
11
11
|
# guarantee that the next operation will succeed (since it could be sent to
|
12
12
|
# another shard with a dead connection).
|
13
|
-
|
14
|
-
|
15
|
-
# On Ruby 2.3 $?.exitstatus is sometimes nil after Process.wait returns which
|
16
|
-
# is not supposed to happen.
|
17
|
-
ruby_version_gte '2.4'
|
13
|
+
require_no_multi_mongos
|
18
14
|
|
19
15
|
require_stress
|
20
16
|
|
@@ -2,117 +2,109 @@ Certificate:
|
|
2
2
|
Data:
|
3
3
|
Version: 3 (0x2)
|
4
4
|
Serial Number:
|
5
|
-
|
5
|
+
0a:35:08:d5:5c:29:2b:01:7d:f8:ad:65:c0:0f:f7:e4
|
6
6
|
Signature Algorithm: sha256WithRSAEncryption
|
7
|
-
Issuer: C = US, O =
|
7
|
+
Issuer: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
|
8
8
|
Validity
|
9
|
-
Not Before: Sep
|
10
|
-
Not After : Sep
|
11
|
-
Subject: C = US, O =
|
9
|
+
Not Before: Sep 24 00:00:00 2020 GMT
|
10
|
+
Not After : Sep 23 23:59:59 2030 GMT
|
11
|
+
Subject: C = US, O = DigiCert Inc, CN = DigiCert TLS RSA SHA256 2020 CA1
|
12
12
|
Subject Public Key Info:
|
13
13
|
Public Key Algorithm: rsaEncryption
|
14
14
|
RSA Public-Key: (2048 bit)
|
15
15
|
Modulus:
|
16
|
-
00:
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
37:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
16
|
+
00:c1:4b:b3:65:47:70:bc:dd:4f:58:db:ec:9c:ed:
|
17
|
+
c3:66:e5:1f:31:13:54:ad:4a:66:46:1f:2c:0a:ec:
|
18
|
+
64:07:e5:2e:dc:dc:b9:0a:20:ed:df:e3:c4:d0:9e:
|
19
|
+
9a:a9:7a:1d:82:88:e5:11:56:db:1e:9f:58:c2:51:
|
20
|
+
e7:2c:34:0d:2e:d2:92:e1:56:cb:f1:79:5f:b3:bb:
|
21
|
+
87:ca:25:03:7b:9a:52:41:66:10:60:4f:57:13:49:
|
22
|
+
f0:e8:37:67:83:df:e7:d3:4b:67:4c:22:51:a6:df:
|
23
|
+
0e:99:10:ed:57:51:74:26:e2:7d:c7:ca:62:2e:13:
|
24
|
+
1b:7f:23:88:25:53:6f:c1:34:58:00:8b:84:ff:f8:
|
25
|
+
be:a7:58:49:22:7b:96:ad:a2:88:9b:15:bc:a0:7c:
|
26
|
+
df:e9:51:a8:d5:b0:ed:37:e2:36:b4:82:4b:62:b5:
|
27
|
+
49:9a:ec:c7:67:d6:e3:3e:f5:e3:d6:12:5e:44:f1:
|
28
|
+
bf:71:42:7d:58:84:03:80:b1:81:01:fa:f9:ca:32:
|
29
|
+
bb:b4:8e:27:87:27:c5:2b:74:d4:a8:d6:97:de:c3:
|
30
|
+
64:f9:ca:ce:53:a2:56:bc:78:17:8e:49:03:29:ae:
|
31
|
+
fb:49:4f:a4:15:b9:ce:f2:5c:19:57:6d:6b:79:a7:
|
32
|
+
2b:a2:27:20:13:b5:d0:3d:40:d3:21:30:07:93:ea:
|
33
|
+
99:f5
|
34
34
|
Exponent: 65537 (0x10001)
|
35
35
|
X509v3 extensions:
|
36
|
+
X509v3 Subject Key Identifier:
|
37
|
+
B7:6B:A2:EA:A8:AA:84:8C:79:EA:B4:DA:0F:98:B2:C5:95:76:B9:F4
|
38
|
+
X509v3 Authority Key Identifier:
|
39
|
+
keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
|
40
|
+
|
36
41
|
X509v3 Key Usage: critical
|
37
42
|
Digital Signature, Certificate Sign, CRL Sign
|
38
43
|
X509v3 Extended Key Usage:
|
39
|
-
TLS Web
|
44
|
+
TLS Web Server Authentication, TLS Web Client Authentication
|
40
45
|
X509v3 Basic Constraints: critical
|
41
46
|
CA:TRUE, pathlen:0
|
42
|
-
X509v3 Subject Key Identifier:
|
43
|
-
14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6
|
44
|
-
X509v3 Authority Key Identifier:
|
45
|
-
keyid:79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E
|
46
|
-
|
47
47
|
Authority Information Access:
|
48
|
-
|
48
|
+
OCSP - URI:http://ocsp.digicert.com
|
49
|
+
CA Issuers - URI:http://cacerts.digicert.com/DigiCertGlobalRootCA.crt
|
49
50
|
|
50
51
|
X509v3 CRL Distribution Points:
|
51
52
|
|
52
53
|
Full Name:
|
53
|
-
URI:http://
|
54
|
+
URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
|
55
|
+
|
56
|
+
Full Name:
|
57
|
+
URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
|
54
58
|
|
55
59
|
X509v3 Certificate Policies:
|
60
|
+
Policy: 2.23.140.1.1
|
56
61
|
Policy: 2.23.140.1.2.1
|
57
|
-
Policy:
|
62
|
+
Policy: 2.23.140.1.2.2
|
63
|
+
Policy: 2.23.140.1.2.3
|
58
64
|
|
59
65
|
Signature Algorithm: sha256WithRSAEncryption
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
f8:8e:79:03:ad:0a:31:07:75:2a:43:d8:55:97:72:c4:29:0e:
|
77
|
-
f7:c4:5d:4e:c8:ae:46:84:30:d7:f2:85:5f:18:a1:79:bb:e7:
|
78
|
-
5e:70:8b:07:e1:86:93:c3:b9:8f:dc:61:71:25:2a:af:df:ed:
|
79
|
-
25:50:52:68:8b:92:dc:e5:d6:b5:e3:da:7d:d0:87:6c:84:21:
|
80
|
-
31:ae:82:f5:fb:b9:ab:c8:89:17:3d:e1:4c:e5:38:0e:f6:bd:
|
81
|
-
2b:bd:96:81:14:eb:d5:db:3d:20:a7:7e:59:d3:e2:f8:58:f9:
|
82
|
-
5b:b8:48:cd:fe:5c:4f:16:29:fe:1e:55:23:af:c8:11:b0:8d:
|
83
|
-
ea:7c:93:90:17:2f:fd:ac:a2:09:47:46:3f:f0:e9:b0:b7:ff:
|
84
|
-
28:4d:68:32:d6:67:5e:1e:69:a3:93:b8:f5:9d:8b:2f:0b:d2:
|
85
|
-
52:43:a6:6f:32:57:65:4d:32:81:df:38:53:85:5d:7e:5d:66:
|
86
|
-
29:ea:b8:dd:e4:95:b5:cd:b5:56:12:42:cd:c4:4e:c6:25:38:
|
87
|
-
44:50:6d:ec:ce:00:55:18:fe:e9:49:64:d4:4e:ca:97:9c:b4:
|
88
|
-
5b:c0:73:a8:ab:b8:47:c2
|
66
|
+
77:ab:b7:7a:27:3d:ae:bb:f6:7f:e0:5a:56:c9:84:aa:ca:5b:
|
67
|
+
71:17:dd:22:47:fc:4e:9f:ee:d0:c1:a4:04:e1:a3:eb:c5:49:
|
68
|
+
c1:fd:d1:c9:df:8c:af:94:45:2c:46:2a:a3:63:39:20:f9:9e:
|
69
|
+
4a:24:94:41:c8:a9:d9:e2:9c:54:05:06:cb:5c:1c:be:00:1b:
|
70
|
+
0f:a8:5a:ff:19:bb:65:c7:16:af:21:56:dd:61:05:c9:e9:8f:
|
71
|
+
98:76:df:6b:1b:d0:72:0c:50:b9:30:29:7a:bf:60:59:10:66:
|
72
|
+
13:3a:2d:ac:15:11:6c:2d:23:0c:02:3e:05:3b:fe:e5:a1:9c:
|
73
|
+
e2:8a:db:87:d7:4a:e8:5e:e7:48:06:eb:ab:12:9a:f2:af:84:
|
74
|
+
c3:5b:83:4a:99:81:83:ab:00:a1:ca:0a:3c:4c:a2:25:89:2a:
|
75
|
+
22:a7:a4:f3:33:4c:5b:8c:2e:1a:02:97:0f:9d:8f:6d:2d:95:
|
76
|
+
08:fb:4f:da:f1:91:38:25:e1:9c:6e:61:18:87:6a:ce:b1:bb:
|
77
|
+
00:30:6a:9b:b7:af:da:f1:c5:97:fe:8a:78:24:aa:ea:93:80:
|
78
|
+
ba:33:65:7a:bc:a1:77:e9:7f:69:14:0b:00:3f:77:92:b1:4d:
|
79
|
+
5b:73:87:0a:13:d0:9c:c8:f2:4b:39:4f:52:84:49:a6:4c:90:
|
80
|
+
4e:1f:f7:b4
|
81
|
+
|
89
82
|
-----BEGIN CERTIFICATE-----
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
-----END CERTIFICATE-----
|
83
|
+
MIIE6jCCA9KgAwIBAgIQCjUI1VwpKwF9+K1lwA/35DANBgkqhkiG9w0BAQsFADBh
|
84
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
85
|
+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
|
86
|
+
QTAeFw0yMDA5MjQwMDAwMDBaFw0zMDA5MjMyMzU5NTlaME8xCzAJBgNVBAYTAlVT
|
87
|
+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxKTAnBgNVBAMTIERpZ2lDZXJ0IFRMUyBS
|
88
|
+
U0EgU0hBMjU2IDIwMjAgQ0ExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
89
|
+
AQEAwUuzZUdwvN1PWNvsnO3DZuUfMRNUrUpmRh8sCuxkB+Uu3Ny5CiDt3+PE0J6a
|
90
|
+
qXodgojlEVbbHp9YwlHnLDQNLtKS4VbL8Xlfs7uHyiUDe5pSQWYQYE9XE0nw6Ddn
|
91
|
+
g9/n00tnTCJRpt8OmRDtV1F0JuJ9x8piLhMbfyOIJVNvwTRYAIuE//i+p1hJInuW
|
92
|
+
raKImxW8oHzf6VGo1bDtN+I2tIJLYrVJmuzHZ9bjPvXj1hJeRPG/cUJ9WIQDgLGB
|
93
|
+
Afr5yjK7tI4nhyfFK3TUqNaX3sNk+crOU6JWvHgXjkkDKa77SU+kFbnO8lwZV21r
|
94
|
+
eacroicgE7XQPUDTITAHk+qZ9QIDAQABo4IBrjCCAaowHQYDVR0OBBYEFLdrouqo
|
95
|
+
qoSMeeq02g+YssWVdrn0MB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFV
|
96
|
+
MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
|
97
|
+
EgYDVR0TAQH/BAgwBgEB/wIBADB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGG
|
98
|
+
GGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2Nh
|
99
|
+
Y2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDB7BgNV
|
100
|
+
HR8EdDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRH
|
101
|
+
bG9iYWxSb290Q0EuY3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20v
|
102
|
+
RGlnaUNlcnRHbG9iYWxSb290Q0EuY3JsMDAGA1UdIAQpMCcwBwYFZ4EMAQEwCAYG
|
103
|
+
Z4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEBAHer
|
104
|
+
t3onPa679n/gWlbJhKrKW3EX3SJH/E6f7tDBpATho+vFScH90cnfjK+URSxGKqNj
|
105
|
+
OSD5nkoklEHIqdninFQFBstcHL4AGw+oWv8Zu2XHFq8hVt1hBcnpj5h232sb0HIM
|
106
|
+
ULkwKXq/YFkQZhM6LawVEWwtIwwCPgU7/uWhnOKK24fXSuhe50gG66sSmvKvhMNb
|
107
|
+
g0qZgYOrAKHKCjxMoiWJKiKnpPMzTFuMLhoClw+dj20tlQj7T9rxkTgl4ZxuYRiH
|
108
|
+
as6xuwAwapu3r9rxxZf+ingkquqTgLozZXq8oXfpf2kUCwA/d5KxTVtzhwoT0JzI
|
109
|
+
8ks5T1KESaZMkE4f97Q=
|
110
|
+
-----END CERTIFICATE-----
|