mongo 2.13.0.beta1 → 2.14.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.
Files changed (339) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -5
  4. data/Rakefile +50 -9
  5. data/lib/mongo.rb +13 -2
  6. data/lib/mongo/address.rb +1 -1
  7. data/lib/mongo/address/ipv4.rb +1 -1
  8. data/lib/mongo/address/ipv6.rb +1 -1
  9. data/lib/mongo/auth/aws/request.rb +31 -5
  10. data/lib/mongo/bulk_write.rb +18 -0
  11. data/lib/mongo/caching_cursor.rb +74 -0
  12. data/lib/mongo/client.rb +238 -31
  13. data/lib/mongo/cluster.rb +56 -20
  14. data/lib/mongo/cluster/sdam_flow.rb +13 -10
  15. data/lib/mongo/cluster/topology/replica_set_no_primary.rb +3 -2
  16. data/lib/mongo/cluster/topology/sharded.rb +1 -1
  17. data/lib/mongo/cluster/topology/single.rb +2 -2
  18. data/lib/mongo/collection.rb +66 -24
  19. data/lib/mongo/collection/view.rb +24 -20
  20. data/lib/mongo/collection/view/aggregation.rb +25 -4
  21. data/lib/mongo/collection/view/builder/find_command.rb +38 -18
  22. data/lib/mongo/collection/view/explainable.rb +27 -8
  23. data/lib/mongo/collection/view/iterable.rb +72 -12
  24. data/lib/mongo/collection/view/readable.rb +19 -3
  25. data/lib/mongo/collection/view/writable.rb +55 -5
  26. data/lib/mongo/crypt/encryption_io.rb +6 -6
  27. data/lib/mongo/cursor.rb +16 -3
  28. data/lib/mongo/database.rb +37 -4
  29. data/lib/mongo/database/view.rb +18 -3
  30. data/lib/mongo/distinguishing_semaphore.rb +55 -0
  31. data/lib/mongo/error.rb +5 -0
  32. data/lib/mongo/error/invalid_read_concern.rb +28 -0
  33. data/lib/mongo/error/invalid_server_auth_host.rb +22 -0
  34. data/lib/mongo/error/invalid_session.rb +2 -1
  35. data/lib/mongo/error/operation_failure.rb +11 -5
  36. data/lib/mongo/error/server_certificate_revoked.rb +22 -0
  37. data/lib/mongo/error/sessions_not_supported.rb +35 -0
  38. data/lib/mongo/error/unsupported_option.rb +14 -12
  39. data/lib/mongo/event/base.rb +6 -0
  40. data/lib/mongo/grid/file.rb +5 -0
  41. data/lib/mongo/grid/file/chunk.rb +2 -0
  42. data/lib/mongo/grid/fs_bucket.rb +15 -13
  43. data/lib/mongo/grid/stream/write.rb +9 -3
  44. data/lib/mongo/index/view.rb +3 -0
  45. data/lib/mongo/lint.rb +2 -1
  46. data/lib/mongo/logger.rb +3 -3
  47. data/lib/mongo/monitoring.rb +38 -0
  48. data/lib/mongo/monitoring/command_log_subscriber.rb +10 -2
  49. data/lib/mongo/monitoring/event/command_failed.rb +11 -0
  50. data/lib/mongo/monitoring/event/command_started.rb +37 -2
  51. data/lib/mongo/monitoring/event/command_succeeded.rb +11 -0
  52. data/lib/mongo/monitoring/event/server_closed.rb +1 -1
  53. data/lib/mongo/monitoring/event/server_description_changed.rb +27 -4
  54. data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +9 -2
  55. data/lib/mongo/monitoring/event/server_heartbeat_started.rb +9 -2
  56. data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +9 -2
  57. data/lib/mongo/monitoring/event/server_opening.rb +1 -1
  58. data/lib/mongo/monitoring/event/topology_changed.rb +1 -1
  59. data/lib/mongo/monitoring/event/topology_closed.rb +1 -1
  60. data/lib/mongo/monitoring/event/topology_opening.rb +1 -1
  61. data/lib/mongo/monitoring/publishable.rb +6 -3
  62. data/lib/mongo/monitoring/server_description_changed_log_subscriber.rb +9 -1
  63. data/lib/mongo/monitoring/topology_changed_log_subscriber.rb +1 -1
  64. data/lib/mongo/operation.rb +2 -0
  65. data/lib/mongo/operation/aggregate/result.rb +9 -8
  66. data/lib/mongo/operation/collections_info/command.rb +5 -0
  67. data/lib/mongo/operation/collections_info/result.rb +18 -1
  68. data/lib/mongo/operation/delete/bulk_result.rb +2 -0
  69. data/lib/mongo/operation/delete/result.rb +3 -0
  70. data/lib/mongo/operation/explain/command.rb +4 -0
  71. data/lib/mongo/operation/explain/legacy.rb +4 -0
  72. data/lib/mongo/operation/explain/op_msg.rb +6 -0
  73. data/lib/mongo/operation/explain/result.rb +3 -0
  74. data/lib/mongo/operation/find/legacy/result.rb +2 -0
  75. data/lib/mongo/operation/find/result.rb +13 -0
  76. data/lib/mongo/operation/get_more/result.rb +3 -0
  77. data/lib/mongo/operation/indexes/result.rb +5 -0
  78. data/lib/mongo/operation/insert/bulk_result.rb +5 -0
  79. data/lib/mongo/operation/insert/result.rb +5 -0
  80. data/lib/mongo/operation/list_collections/result.rb +5 -0
  81. data/lib/mongo/operation/map_reduce/result.rb +10 -0
  82. data/lib/mongo/operation/parallel_scan/result.rb +4 -0
  83. data/lib/mongo/operation/result.rb +35 -6
  84. data/lib/mongo/operation/shared/bypass_document_validation.rb +1 -0
  85. data/lib/mongo/operation/shared/causal_consistency_supported.rb +1 -0
  86. data/lib/mongo/operation/shared/collections_info_or_list_collections.rb +2 -0
  87. data/lib/mongo/operation/shared/executable.rb +1 -0
  88. data/lib/mongo/operation/shared/idable.rb +2 -1
  89. data/lib/mongo/operation/shared/limited.rb +1 -0
  90. data/lib/mongo/operation/shared/object_id_generator.rb +1 -0
  91. data/lib/mongo/operation/shared/result/aggregatable.rb +1 -0
  92. data/lib/mongo/operation/shared/sessions_supported.rb +1 -0
  93. data/lib/mongo/operation/shared/specifiable.rb +1 -0
  94. data/lib/mongo/operation/shared/write.rb +1 -0
  95. data/lib/mongo/operation/shared/write_concern_supported.rb +1 -0
  96. data/lib/mongo/operation/update/legacy/result.rb +7 -0
  97. data/lib/mongo/operation/update/result.rb +8 -0
  98. data/lib/mongo/operation/users_info/result.rb +3 -0
  99. data/lib/mongo/protocol/message.rb +47 -10
  100. data/lib/mongo/protocol/msg.rb +34 -1
  101. data/lib/mongo/protocol/query.rb +36 -0
  102. data/lib/mongo/protocol/serializers.rb +5 -2
  103. data/lib/mongo/query_cache.rb +242 -0
  104. data/lib/mongo/retryable.rb +8 -1
  105. data/lib/mongo/server.rb +15 -4
  106. data/lib/mongo/server/app_metadata.rb +27 -3
  107. data/lib/mongo/server/connection.rb +4 -4
  108. data/lib/mongo/server/connection_base.rb +38 -12
  109. data/lib/mongo/server/connection_common.rb +2 -2
  110. data/lib/mongo/server/connection_pool.rb +3 -0
  111. data/lib/mongo/server/description.rb +13 -1
  112. data/lib/mongo/server/monitor.rb +76 -44
  113. data/lib/mongo/server/monitor/connection.rb +57 -9
  114. data/lib/mongo/server/pending_connection.rb +14 -4
  115. data/lib/mongo/server/push_monitor.rb +173 -0
  116. data/{spec/runners/transactions/context.rb → lib/mongo/server/push_monitor/connection.rb} +9 -14
  117. data/lib/mongo/server_selector.rb +0 -1
  118. data/lib/mongo/server_selector/base.rb +583 -1
  119. data/lib/mongo/server_selector/nearest.rb +1 -6
  120. data/lib/mongo/server_selector/primary.rb +1 -6
  121. data/lib/mongo/server_selector/primary_preferred.rb +7 -10
  122. data/lib/mongo/server_selector/secondary.rb +1 -6
  123. data/lib/mongo/server_selector/secondary_preferred.rb +1 -7
  124. data/lib/mongo/session.rb +7 -1
  125. data/lib/mongo/socket.rb +26 -12
  126. data/lib/mongo/socket/ocsp_cache.rb +97 -0
  127. data/lib/mongo/socket/ocsp_verifier.rb +368 -0
  128. data/lib/mongo/socket/ssl.rb +46 -25
  129. data/lib/mongo/socket/tcp.rb +1 -1
  130. data/lib/mongo/srv/monitor.rb +7 -13
  131. data/lib/mongo/srv/resolver.rb +14 -10
  132. data/lib/mongo/timeout.rb +2 -0
  133. data/lib/mongo/topology_version.rb +9 -0
  134. data/lib/mongo/uri.rb +21 -390
  135. data/lib/mongo/uri/options_mapper.rb +582 -0
  136. data/lib/mongo/uri/srv_protocol.rb +3 -2
  137. data/lib/mongo/utils.rb +73 -0
  138. data/lib/mongo/version.rb +1 -1
  139. data/spec/NOTES.aws-auth.md +12 -7
  140. data/spec/README.aws-auth.md +2 -2
  141. data/spec/README.md +63 -1
  142. data/spec/integration/awaited_ismaster_spec.rb +28 -0
  143. data/spec/integration/bson_symbol_spec.rb +4 -2
  144. data/spec/integration/bulk_write_spec.rb +67 -0
  145. data/spec/integration/change_stream_examples_spec.rb +6 -2
  146. data/spec/integration/change_stream_spec.rb +1 -1
  147. data/spec/integration/check_clean_slate_spec.rb +16 -0
  148. data/spec/integration/client_authentication_options_spec.rb +92 -28
  149. data/spec/integration/client_construction_spec.rb +1 -0
  150. data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +9 -5
  151. data/spec/integration/connect_single_rs_name_spec.rb +5 -2
  152. data/spec/integration/connection_pool_populator_spec.rb +4 -2
  153. data/spec/integration/connection_spec.rb +7 -4
  154. data/spec/integration/crud_spec.rb +4 -4
  155. data/spec/integration/cursor_reaping_spec.rb +54 -18
  156. data/spec/integration/docs_examples_spec.rb +6 -0
  157. data/spec/integration/fork_reconnect_spec.rb +56 -1
  158. data/spec/integration/grid_fs_bucket_spec.rb +48 -0
  159. data/spec/integration/heartbeat_events_spec.rb +4 -23
  160. data/spec/integration/ocsp_connectivity_spec.rb +26 -0
  161. data/spec/integration/ocsp_verifier_cache_spec.rb +188 -0
  162. data/spec/integration/ocsp_verifier_spec.rb +334 -0
  163. data/spec/integration/query_cache_spec.rb +1045 -0
  164. data/spec/integration/query_cache_transactions_spec.rb +190 -0
  165. data/spec/integration/read_concern_spec.rb +1 -1
  166. data/spec/integration/retryable_errors_spec.rb +1 -1
  167. data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +1 -0
  168. data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +4 -2
  169. data/spec/integration/retryable_writes/shared/performs_modern_retries.rb +3 -3
  170. data/spec/integration/retryable_writes/shared/performs_no_retries.rb +2 -2
  171. data/spec/integration/sdam_error_handling_spec.rb +122 -15
  172. data/spec/integration/sdam_events_spec.rb +80 -6
  173. data/spec/integration/sdam_prose_spec.rb +64 -0
  174. data/spec/integration/server_monitor_spec.rb +25 -1
  175. data/spec/integration/server_selection_spec.rb +36 -0
  176. data/spec/integration/size_limit_spec.rb +23 -5
  177. data/spec/integration/srv_monitoring_spec.rb +38 -3
  178. data/spec/integration/srv_spec.rb +56 -0
  179. data/spec/integration/ssl_uri_options_spec.rb +2 -2
  180. data/spec/integration/transactions_examples_spec.rb +17 -7
  181. data/spec/integration/zlib_compression_spec.rb +25 -0
  182. data/spec/lite_spec_helper.rb +20 -9
  183. data/spec/mongo/address_spec.rb +1 -1
  184. data/spec/mongo/auth/aws/request_region_spec.rb +42 -0
  185. data/spec/mongo/auth/aws/request_spec.rb +76 -0
  186. data/spec/mongo/auth/scram_spec.rb +1 -1
  187. data/spec/mongo/auth/user_spec.rb +1 -1
  188. data/spec/mongo/bulk_write_spec.rb +2 -2
  189. data/spec/mongo/caching_cursor_spec.rb +70 -0
  190. data/spec/mongo/client_construction_spec.rb +386 -3
  191. data/spec/mongo/client_encryption_spec.rb +16 -10
  192. data/spec/mongo/client_spec.rb +85 -3
  193. data/spec/mongo/cluster/topology/replica_set_spec.rb +53 -10
  194. data/spec/mongo/cluster/topology/sharded_spec.rb +1 -1
  195. data/spec/mongo/cluster/topology/single_spec.rb +19 -8
  196. data/spec/mongo/cluster/topology/unknown_spec.rb +1 -1
  197. data/spec/mongo/cluster/topology_spec.rb +1 -1
  198. data/spec/mongo/cluster_spec.rb +37 -35
  199. data/spec/mongo/collection/view/change_stream_resume_spec.rb +7 -7
  200. data/spec/mongo/collection/view/explainable_spec.rb +87 -4
  201. data/spec/mongo/collection/view/map_reduce_spec.rb +2 -0
  202. data/spec/mongo/collection/view/readable_spec.rb +36 -0
  203. data/spec/mongo/collection_spec.rb +572 -0
  204. data/spec/mongo/crypt/auto_decryption_context_spec.rb +1 -1
  205. data/spec/mongo/crypt/auto_encryption_context_spec.rb +1 -1
  206. data/spec/mongo/crypt/binary_spec.rb +1 -6
  207. data/spec/mongo/crypt/binding/binary_spec.rb +1 -6
  208. data/spec/mongo/crypt/binding/context_spec.rb +2 -7
  209. data/spec/mongo/crypt/binding/helpers_spec.rb +1 -6
  210. data/spec/mongo/crypt/binding/mongocrypt_spec.rb +2 -7
  211. data/spec/mongo/crypt/binding/status_spec.rb +1 -6
  212. data/spec/mongo/crypt/binding/version_spec.rb +1 -6
  213. data/spec/mongo/crypt/data_key_context_spec.rb +1 -1
  214. data/spec/mongo/crypt/explicit_decryption_context_spec.rb +1 -1
  215. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +1 -1
  216. data/spec/mongo/crypt/status_spec.rb +1 -6
  217. data/spec/mongo/database_spec.rb +353 -8
  218. data/spec/mongo/distinguishing_semaphore_spec.rb +63 -0
  219. data/spec/mongo/error/no_server_available_spec.rb +1 -1
  220. data/spec/mongo/error/operation_failure_spec.rb +40 -0
  221. data/spec/mongo/index/view_spec.rb +148 -2
  222. data/spec/mongo/logger_spec.rb +13 -11
  223. data/spec/mongo/monitoring/event/server_closed_spec.rb +1 -1
  224. data/spec/mongo/monitoring/event/server_description_changed_spec.rb +1 -4
  225. data/spec/mongo/monitoring/event/server_opening_spec.rb +1 -1
  226. data/spec/mongo/monitoring/event/topology_changed_spec.rb +1 -1
  227. data/spec/mongo/monitoring/event/topology_closed_spec.rb +1 -1
  228. data/spec/mongo/monitoring/event/topology_opening_spec.rb +1 -1
  229. data/spec/mongo/operation/delete/op_msg_spec.rb +3 -3
  230. data/spec/mongo/operation/insert/command_spec.rb +2 -2
  231. data/spec/mongo/operation/insert/op_msg_spec.rb +3 -3
  232. data/spec/mongo/operation/read_preference_op_msg_spec.rb +1 -1
  233. data/spec/mongo/operation/update/command_spec.rb +2 -2
  234. data/spec/mongo/operation/update/op_msg_spec.rb +3 -3
  235. data/spec/mongo/protocol/msg_spec.rb +10 -0
  236. data/spec/mongo/query_cache_spec.rb +280 -0
  237. data/spec/mongo/semaphore_spec.rb +51 -0
  238. data/spec/mongo/server/app_metadata_shared.rb +82 -2
  239. data/spec/mongo/server/connection_auth_spec.rb +2 -2
  240. data/spec/mongo/server/connection_pool_spec.rb +7 -3
  241. data/spec/mongo/server/connection_spec.rb +15 -8
  242. data/spec/mongo/server/description_spec.rb +18 -0
  243. data/spec/mongo/server_selector/nearest_spec.rb +23 -23
  244. data/spec/mongo/server_selector/primary_preferred_spec.rb +26 -26
  245. data/spec/mongo/server_selector/primary_spec.rb +9 -9
  246. data/spec/mongo/server_selector/secondary_preferred_spec.rb +22 -22
  247. data/spec/mongo/server_selector/secondary_spec.rb +18 -18
  248. data/spec/mongo/server_selector_spec.rb +6 -6
  249. data/spec/mongo/session_spec.rb +35 -0
  250. data/spec/mongo/socket/ssl_spec.rb +4 -4
  251. data/spec/mongo/socket_spec.rb +1 -1
  252. data/spec/mongo/uri/srv_protocol_spec.rb +64 -33
  253. data/spec/mongo/uri_option_parsing_spec.rb +11 -11
  254. data/spec/mongo/uri_spec.rb +68 -41
  255. data/spec/mongo/utils_spec.rb +39 -0
  256. data/spec/runners/auth.rb +3 -0
  257. data/spec/runners/change_streams/test.rb +3 -3
  258. data/spec/runners/cmap.rb +1 -1
  259. data/spec/runners/command_monitoring.rb +3 -34
  260. data/spec/runners/connection_string.rb +35 -124
  261. data/spec/runners/crud/context.rb +9 -5
  262. data/spec/runners/crud/operation.rb +59 -27
  263. data/spec/runners/crud/spec.rb +0 -8
  264. data/spec/runners/crud/test.rb +1 -1
  265. data/spec/runners/crud/test_base.rb +0 -19
  266. data/spec/runners/sdam.rb +2 -2
  267. data/spec/runners/server_selection.rb +242 -28
  268. data/spec/runners/transactions.rb +12 -12
  269. data/spec/runners/transactions/operation.rb +151 -25
  270. data/spec/runners/transactions/test.rb +62 -18
  271. data/spec/shared/LICENSE +20 -0
  272. data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
  273. data/spec/shared/lib/mrss/constraints.rb +303 -0
  274. data/spec/shared/lib/mrss/lite_constraints.rb +175 -0
  275. data/spec/shared/lib/mrss/spec_organizer.rb +149 -0
  276. data/spec/spec_helper.rb +3 -1
  277. data/spec/spec_tests/cmap_spec.rb +7 -3
  278. data/spec/spec_tests/command_monitoring_spec.rb +22 -12
  279. data/spec/spec_tests/crud_spec.rb +1 -1
  280. data/spec/spec_tests/data/change_streams/change-streams-errors.yml +4 -9
  281. data/spec/spec_tests/data/change_streams/change-streams-resume-whitelist.yml +66 -0
  282. data/spec/spec_tests/data/change_streams/change-streams.yml +0 -1
  283. data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +6 -2
  284. data/spec/spec_tests/data/cmap/pool-create-min-size.yml +3 -0
  285. data/spec/spec_tests/data/connection_string/valid-warnings.yml +24 -0
  286. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/MaxStalenessTooSmall.yml +15 -0
  287. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/NoKnownServers.yml +4 -3
  288. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +1 -0
  289. data/spec/spec_tests/data/sdam_integration/cancel-server-check.yml +96 -0
  290. data/spec/spec_tests/data/sdam_integration/connectTimeoutMS.yml +88 -0
  291. data/spec/spec_tests/data/sdam_integration/find-network-error.yml +83 -0
  292. data/spec/spec_tests/data/sdam_integration/find-shutdown-error.yml +116 -0
  293. data/spec/spec_tests/data/sdam_integration/insert-network-error.yml +86 -0
  294. data/spec/spec_tests/data/sdam_integration/insert-shutdown-error.yml +115 -0
  295. data/spec/spec_tests/data/sdam_integration/isMaster-command-error.yml +168 -0
  296. data/spec/spec_tests/data/sdam_integration/isMaster-network-error.yml +162 -0
  297. data/spec/spec_tests/data/sdam_integration/isMaster-timeout.yml +229 -0
  298. data/spec/spec_tests/data/sdam_integration/rediscover-quickly-after-step-down.yml +87 -0
  299. data/spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml +1 -3
  300. data/spec/spec_tests/data/sdam_monitoring/standalone.yml +2 -2
  301. data/spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml +2 -2
  302. data/spec/spec_tests/data/sdam_monitoring/standalone_suppress_equal_description_changes.yml +2 -2
  303. data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +2 -2
  304. data/spec/spec_tests/data/uri_options/auth-options.yml +25 -0
  305. data/spec/spec_tests/data/uri_options/compression-options.yml +6 -3
  306. data/spec/spec_tests/data/uri_options/read-preference-options.yml +24 -0
  307. data/spec/spec_tests/data/uri_options/ruby-connection-options.yml +1 -0
  308. data/spec/spec_tests/data/uri_options/tls-options.yml +160 -4
  309. data/spec/spec_tests/dns_seedlist_discovery_spec.rb +9 -1
  310. data/spec/spec_tests/max_staleness_spec.rb +4 -142
  311. data/spec/spec_tests/retryable_reads_spec.rb +2 -2
  312. data/spec/spec_tests/sdam_integration_spec.rb +13 -0
  313. data/spec/spec_tests/sdam_monitoring_spec.rb +1 -2
  314. data/spec/spec_tests/server_selection_spec.rb +4 -116
  315. data/spec/spec_tests/uri_options_spec.rb +31 -33
  316. data/spec/stress/cleanup_spec.rb +17 -2
  317. data/spec/stress/connection_pool_stress_spec.rb +10 -8
  318. data/spec/stress/fork_reconnect_stress_spec.rb +1 -1
  319. data/spec/support/certificates/atlas-ocsp-ca.crt +28 -0
  320. data/spec/support/certificates/atlas-ocsp.crt +41 -0
  321. data/spec/support/client_registry.rb +1 -0
  322. data/spec/support/client_registry_macros.rb +11 -2
  323. data/spec/support/cluster_config.rb +4 -0
  324. data/spec/support/common_shortcuts.rb +45 -0
  325. data/spec/support/constraints.rb +6 -253
  326. data/spec/support/event_subscriber.rb +123 -33
  327. data/spec/support/keyword_struct.rb +26 -0
  328. data/spec/support/matchers.rb +16 -0
  329. data/spec/support/ocsp +1 -0
  330. data/spec/support/session_registry.rb +52 -0
  331. data/spec/support/shared/server_selector.rb +13 -1
  332. data/spec/support/spec_config.rb +60 -13
  333. data/spec/support/spec_setup.rb +1 -1
  334. data/spec/support/utils.rb +84 -1
  335. metadata +1027 -937
  336. metadata.gz.sig +0 -0
  337. data/lib/mongo/server_selector/selectable.rb +0 -560
  338. data/spec/runners/sdam_monitoring.rb +0 -89
  339. data/spec/support/lite_constraints.rb +0 -141
@@ -95,13 +95,13 @@ describe Mongo::ServerSelector::Primary do
95
95
  end
96
96
  end
97
97
 
98
- describe '#select' do
98
+ describe '#select_in_replica_set' do
99
99
 
100
100
  context 'no candidates' do
101
101
  let(:candidates) { [] }
102
102
 
103
103
  it 'returns an empty array' do
104
- expect(selector.send(:select, candidates)).to be_empty
104
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
105
105
  end
106
106
  end
107
107
 
@@ -109,7 +109,7 @@ describe Mongo::ServerSelector::Primary do
109
109
  let(:candidates) { [secondary] }
110
110
 
111
111
  it 'returns an empty array' do
112
- expect(selector.send(:select, candidates)).to be_empty
112
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
113
113
  end
114
114
  end
115
115
 
@@ -117,7 +117,7 @@ describe Mongo::ServerSelector::Primary do
117
117
  let(:candidates) { [primary] }
118
118
 
119
119
  it 'returns an array with the primary' do
120
- expect(selector.send(:select, candidates)).to eq([primary])
120
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
121
121
  end
122
122
  end
123
123
 
@@ -125,7 +125,7 @@ describe Mongo::ServerSelector::Primary do
125
125
  let(:candidates) { [secondary, primary] }
126
126
 
127
127
  it 'returns an array with the primary' do
128
- expect(selector.send(:select, candidates)).to eq([primary])
128
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
129
129
  end
130
130
  end
131
131
 
@@ -139,7 +139,7 @@ describe Mongo::ServerSelector::Primary do
139
139
  let(:candidates) { [far_primary] }
140
140
 
141
141
  it 'returns array with the primary' do
142
- expect(selector.send(:select, candidates)).to eq([far_primary])
142
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_primary])
143
143
  end
144
144
  end
145
145
 
@@ -147,7 +147,7 @@ describe Mongo::ServerSelector::Primary do
147
147
  let(:candidates) { [far_secondary] }
148
148
 
149
149
  it 'returns empty array' do
150
- expect(selector.send(:select, candidates)).to be_empty
150
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
151
151
  end
152
152
  end
153
153
  end
@@ -158,7 +158,7 @@ describe Mongo::ServerSelector::Primary do
158
158
  let(:candidates) { [far_primary, far_secondary] }
159
159
 
160
160
  it 'returns an array with the primary' do
161
- expect(selector.send(:select, candidates)).to eq([far_primary])
161
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_primary])
162
162
  end
163
163
  end
164
164
 
@@ -166,7 +166,7 @@ describe Mongo::ServerSelector::Primary do
166
166
  let(:candidates) { [far_primary, far_secondary] }
167
167
 
168
168
  it 'returns an array with the primary' do
169
- expect(selector.send(:select, candidates)).to eq([far_primary])
169
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_primary])
170
170
  end
171
171
  end
172
172
  end
@@ -127,12 +127,12 @@ describe Mongo::ServerSelector::SecondaryPreferred do
127
127
 
128
128
  end
129
129
 
130
- describe '#select' do
130
+ describe '#select_in_replica_set' do
131
131
  context 'no candidates' do
132
132
  let(:candidates) { [] }
133
133
 
134
134
  it 'returns an empty array' do
135
- expect(selector.send(:select, candidates)).to be_empty
135
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
136
136
  end
137
137
  end
138
138
 
@@ -140,7 +140,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
140
140
  let(:candidates) { [primary] }
141
141
 
142
142
  it 'returns array with primary' do
143
- expect(selector.send(:select, candidates)).to eq([primary])
143
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
144
144
  end
145
145
  end
146
146
 
@@ -148,7 +148,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
148
148
  let(:candidates) { [secondary] }
149
149
 
150
150
  it 'returns array with secondary' do
151
- expect(selector.send(:select, candidates)).to eq([secondary])
151
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary])
152
152
  end
153
153
  end
154
154
 
@@ -157,7 +157,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
157
157
  let(:expected) { [secondary, primary] }
158
158
 
159
159
  it 'returns array with secondary first, then primary' do
160
- expect(selector.send(:select, candidates)).to eq(expected)
160
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
161
161
  end
162
162
  end
163
163
 
@@ -166,7 +166,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
166
166
  let(:expected) { [secondary, primary] }
167
167
 
168
168
  it 'returns array with secondary and primary' do
169
- expect(selector.send(:select, candidates)).to eq(expected)
169
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
170
170
  end
171
171
  end
172
172
 
@@ -190,7 +190,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
190
190
  let(:candidates) { [primary] }
191
191
 
192
192
  it 'returns array with primary' do
193
- expect(selector.send(:select, candidates)).to eq([primary])
193
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
194
194
  end
195
195
  end
196
196
 
@@ -198,7 +198,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
198
198
  let(:candidates) { [matching_primary] }
199
199
 
200
200
  it 'returns array with matching primary' do
201
- expect(selector.send(:select, candidates)).to eq([matching_primary])
201
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_primary])
202
202
  end
203
203
  end
204
204
 
@@ -206,7 +206,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
206
206
  let(:candidates) { [matching_secondary] }
207
207
 
208
208
  it 'returns array with matching secondary' do
209
- expect(selector.send(:select, candidates)).to eq([matching_secondary])
209
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary])
210
210
  end
211
211
  end
212
212
 
@@ -214,7 +214,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
214
214
  let(:candidates) { [secondary] }
215
215
 
216
216
  it 'returns an empty array' do
217
- expect(selector.send(:select, candidates)).to be_empty
217
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
218
218
  end
219
219
  end
220
220
  end
@@ -225,7 +225,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
225
225
  let(:candidates) { [primary, secondary, secondary] }
226
226
 
227
227
  it 'returns an array with the primary' do
228
- expect(selector.send(:select, candidates)).to eq([primary])
228
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
229
229
  end
230
230
  end
231
231
 
@@ -233,7 +233,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
233
233
  let(:candidates) { [primary, matching_secondary] }
234
234
 
235
235
  it 'returns an array of the matching secondary, then primary' do
236
- expect(selector.send(:select, candidates)).to eq(
236
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(
237
237
  [matching_secondary, primary]
238
238
  )
239
239
  end
@@ -244,7 +244,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
244
244
  let(:expected) { [matching_secondary, matching_secondary, primary] }
245
245
 
246
246
  it 'returns an array of the matching secondaries, then primary' do
247
- expect(selector.send(:select, candidates)).to eq(expected)
247
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
248
248
  end
249
249
  end
250
250
 
@@ -253,7 +253,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
253
253
  let(:expected) {[matching_secondary, matching_primary] }
254
254
 
255
255
  it 'returns an array of the matching secondary, then the primary' do
256
- expect(selector.send(:select, candidates)).to eq(expected)
256
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
257
257
  end
258
258
  end
259
259
  end
@@ -269,7 +269,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
269
269
  let(:candidates) { [far_primary] }
270
270
 
271
271
  it 'returns array with primary' do
272
- expect(selector.send(:select, candidates)).to eq([far_primary])
272
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_primary])
273
273
  end
274
274
  end
275
275
 
@@ -277,7 +277,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
277
277
  let(:candidates) { [far_secondary] }
278
278
 
279
279
  it 'returns an array with the secondary' do
280
- expect(selector.send(:select, candidates)).to eq([far_secondary])
280
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary])
281
281
  end
282
282
  end
283
283
  end
@@ -288,7 +288,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
288
288
  let(:candidates) { [primary, secondary] }
289
289
 
290
290
  it 'returns an array with secondary, then primary' do
291
- expect(selector.send(:select, candidates)).to eq([secondary, primary])
291
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary, primary])
292
292
  end
293
293
  end
294
294
 
@@ -296,7 +296,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
296
296
  let(:candidates) { [primary, far_secondary] }
297
297
 
298
298
  it 'returns an array with the secondary, then primary' do
299
- expect(selector.send(:select, candidates)).to eq([far_secondary, primary])
299
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary, primary])
300
300
  end
301
301
  end
302
302
 
@@ -305,7 +305,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
305
305
  let(:expected) { [secondary, far_primary] }
306
306
 
307
307
  it 'returns an array with secondary, then primary' do
308
- expect(selector.send(:select, candidates)).to eq(expected)
308
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
309
309
  end
310
310
  end
311
311
 
@@ -314,7 +314,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
314
314
  let(:expected) { [far_secondary, far_primary] }
315
315
 
316
316
  it 'returns an array with secondary, then primary' do
317
- expect(selector.send(:select, candidates)).to eq(expected)
317
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
318
318
  end
319
319
  end
320
320
 
@@ -325,7 +325,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
325
325
  let(:expected) { [secondary, primary] }
326
326
 
327
327
  it 'returns an array with near secondary, then primary' do
328
- expect(selector.send(:select, candidates)).to eq(expected)
328
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
329
329
  end
330
330
  end
331
331
 
@@ -334,7 +334,7 @@ describe Mongo::ServerSelector::SecondaryPreferred do
334
334
  let(:expected) { [secondary, secondary, far_primary] }
335
335
 
336
336
  it 'returns an array with secondaries, then primary' do
337
- expect(selector.send(:select, candidates)).to eq(expected)
337
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
338
338
  end
339
339
  end
340
340
  end
@@ -106,13 +106,13 @@ describe Mongo::ServerSelector::Secondary do
106
106
  end
107
107
  end
108
108
 
109
- describe '#select' do
109
+ describe '#select_in_replica_set' do
110
110
 
111
111
  context 'no candidates' do
112
112
  let(:candidates) { [] }
113
113
 
114
114
  it 'returns an empty array' do
115
- expect(selector.send(:select, candidates)).to be_empty
115
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
116
116
  end
117
117
  end
118
118
 
@@ -120,7 +120,7 @@ describe Mongo::ServerSelector::Secondary do
120
120
  let(:candidates) { [primary] }
121
121
 
122
122
  it 'returns an empty array' do
123
- expect(selector.send(:select, candidates)).to be_empty
123
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
124
124
  end
125
125
  end
126
126
 
@@ -128,7 +128,7 @@ describe Mongo::ServerSelector::Secondary do
128
128
  let(:candidates) { [secondary] }
129
129
 
130
130
  it 'returns array with secondary' do
131
- expect(selector.send(:select, candidates)).to eq([secondary])
131
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary])
132
132
  end
133
133
  end
134
134
 
@@ -136,7 +136,7 @@ describe Mongo::ServerSelector::Secondary do
136
136
  let(:candidates) { [primary, secondary] }
137
137
 
138
138
  it 'returns array with secondary' do
139
- expect(selector.send(:select, candidates)).to eq([secondary])
139
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary])
140
140
  end
141
141
  end
142
142
 
@@ -144,7 +144,7 @@ describe Mongo::ServerSelector::Secondary do
144
144
  let(:candidates) { [secondary, secondary, primary] }
145
145
 
146
146
  it 'returns array with all secondaries' do
147
- expect(selector.send(:select, candidates)).to eq([secondary, secondary])
147
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary, secondary])
148
148
  end
149
149
  end
150
150
 
@@ -158,7 +158,7 @@ describe Mongo::ServerSelector::Secondary do
158
158
  let(:candidates) { [primary] }
159
159
 
160
160
  it 'returns an empty array' do
161
- expect(selector.send(:select, candidates)).to be_empty
161
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
162
162
  end
163
163
  end
164
164
 
@@ -166,7 +166,7 @@ describe Mongo::ServerSelector::Secondary do
166
166
  let(:candidates) { [secondary] }
167
167
 
168
168
  it 'returns an empty array' do
169
- expect(selector.send(:select, candidates)).to be_empty
169
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
170
170
  end
171
171
  end
172
172
 
@@ -174,7 +174,7 @@ describe Mongo::ServerSelector::Secondary do
174
174
  let(:candidates) { [matching_secondary] }
175
175
 
176
176
  it 'returns an array with matching secondary' do
177
- expect(selector.send(:select, candidates)).to eq([matching_secondary])
177
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary])
178
178
  end
179
179
  end
180
180
  end
@@ -185,7 +185,7 @@ describe Mongo::ServerSelector::Secondary do
185
185
  let(:candidates) { [primary, secondary, secondary] }
186
186
 
187
187
  it 'returns an emtpy array' do
188
- expect(selector.send(:select, candidates)).to be_empty
188
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
189
189
  end
190
190
  end
191
191
 
@@ -193,7 +193,7 @@ describe Mongo::ServerSelector::Secondary do
193
193
  let(:candidates) { [secondary, matching_secondary]}
194
194
 
195
195
  it 'returns array with matching secondary' do
196
- expect(selector.send(:select, candidates)).to eq([matching_secondary])
196
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary])
197
197
  end
198
198
  end
199
199
 
@@ -201,7 +201,7 @@ describe Mongo::ServerSelector::Secondary do
201
201
  let(:candidates) { [matching_secondary, matching_secondary] }
202
202
 
203
203
  it 'returns an array with both matching secondaries' do
204
- expect(selector.send(:select, candidates)).to eq([matching_secondary, matching_secondary])
204
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary, matching_secondary])
205
205
  end
206
206
  end
207
207
  end
@@ -217,7 +217,7 @@ describe Mongo::ServerSelector::Secondary do
217
217
  let(:candidates) { [far_primary] }
218
218
 
219
219
  it 'returns an empty array' do
220
- expect(selector.send(:select, candidates)).to be_empty
220
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
221
221
  end
222
222
  end
223
223
 
@@ -225,7 +225,7 @@ describe Mongo::ServerSelector::Secondary do
225
225
  let(:candidates) { [far_secondary] }
226
226
 
227
227
  it 'returns an array with the secondary' do
228
- expect(selector.send(:select, candidates)).to eq([far_secondary])
228
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary])
229
229
  end
230
230
  end
231
231
  end
@@ -236,7 +236,7 @@ describe Mongo::ServerSelector::Secondary do
236
236
  let(:candidates) { [primary, far_secondary] }
237
237
 
238
238
  it 'returns an array with the secondary' do
239
- expect(selector.send(:select, candidates)).to eq([far_secondary])
239
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary])
240
240
  end
241
241
  end
242
242
 
@@ -244,7 +244,7 @@ describe Mongo::ServerSelector::Secondary do
244
244
  let(:candidates) { [far_primary, far_secondary] }
245
245
 
246
246
  it 'returns an array with the secondary' do
247
- expect(selector.send(:select, candidates)).to eq([far_secondary])
247
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary])
248
248
  end
249
249
  end
250
250
 
@@ -254,7 +254,7 @@ describe Mongo::ServerSelector::Secondary do
254
254
  let(:candidates) { [primary, secondary, far_secondary] }
255
255
 
256
256
  it 'returns an array with near secondary' do
257
- expect(selector.send(:select, candidates)).to eq([secondary])
257
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary])
258
258
  end
259
259
  end
260
260
 
@@ -262,7 +262,7 @@ describe Mongo::ServerSelector::Secondary do
262
262
  let(:candidates) { [far_primary, secondary, secondary] }
263
263
 
264
264
  it 'returns an array with two secondaries' do
265
- expect(selector.send(:select, candidates)).to eq([secondary, secondary])
265
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary, secondary])
266
266
  end
267
267
  end
268
268
  end
@@ -196,9 +196,9 @@ describe Mongo::ServerSelector do
196
196
  end
197
197
 
198
198
  describe "#select_server" do
199
- skip_if_linting
199
+ require_no_linting
200
200
 
201
- context 'when #select returns a list of nils' do
201
+ context 'when #select_in_replica_set returns a list of nils' do
202
202
 
203
203
  let(:servers) do
204
204
  [ make_server(:primary) ]
@@ -224,7 +224,7 @@ describe Mongo::ServerSelector do
224
224
 
225
225
  let(:read_pref) do
226
226
  described_class.get(mode: :primary).tap do |pref|
227
- allow(pref).to receive(:select).and_return([ nil, nil ])
227
+ allow(pref).to receive(:select_in_replica_set).and_return([ nil, nil ])
228
228
  end
229
229
  end
230
230
 
@@ -498,7 +498,7 @@ describe Mongo::ServerSelector do
498
498
  end
499
499
 
500
500
  describe '#filter_stale_servers' do
501
- skip_if_linting
501
+ require_no_linting
502
502
 
503
503
  include_context 'server selector'
504
504
  let(:name) do
@@ -564,7 +564,7 @@ describe Mongo::ServerSelector do
564
564
  end
565
565
  end
566
566
 
567
- describe '#candidates' do
567
+ describe '#suitable_servers' do
568
568
  let(:selector) { Mongo::ServerSelector::Primary.new(options) }
569
569
 
570
570
  let(:cluster) { double('cluster') }
@@ -602,7 +602,7 @@ describe Mongo::ServerSelector do
602
602
  end
603
603
 
604
604
  it 'returns an empty list' do
605
- expect(selector.candidates(cluster)).to eq([])
605
+ expect(selector.suitable_servers(cluster)).to eq([])
606
606
  end
607
607
  end
608
608
  end