mongo 1.8.6 → 2.15.1

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 (1640) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/CONTRIBUTING.md +22 -0
  4. data/LICENSE +1 -1
  5. data/README.md +68 -304
  6. data/Rakefile +280 -11
  7. data/bin/mongo_console +18 -13
  8. data/lib/mongo/active_support.rb +20 -0
  9. data/lib/mongo/address/ipv4.rb +128 -0
  10. data/lib/mongo/address/ipv6.rb +142 -0
  11. data/lib/mongo/address/unix.rb +82 -0
  12. data/lib/mongo/address/validator.rb +102 -0
  13. data/lib/mongo/address.rb +296 -0
  14. data/lib/mongo/auth/aws/conversation.rb +128 -0
  15. data/lib/mongo/auth/aws/credentials_retriever.rb +222 -0
  16. data/lib/mongo/auth/aws/request.rb +286 -0
  17. data/lib/mongo/auth/aws.rb +40 -0
  18. data/lib/mongo/auth/base.rb +138 -0
  19. data/lib/mongo/auth/conversation_base.rb +87 -0
  20. data/lib/mongo/auth/cr/conversation.rb +77 -0
  21. data/lib/mongo/auth/cr.rb +45 -0
  22. data/lib/mongo/auth/credential_cache.rb +54 -0
  23. data/lib/mongo/auth/gssapi/conversation.rb +100 -0
  24. data/lib/mongo/auth/gssapi.rb +41 -0
  25. data/lib/mongo/auth/ldap/conversation.rb +57 -0
  26. data/lib/mongo/auth/ldap.rb +42 -0
  27. data/lib/mongo/auth/roles.rb +107 -0
  28. data/lib/mongo/auth/sasl_conversation_base.rb +102 -0
  29. data/lib/mongo/auth/scram/conversation.rb +65 -0
  30. data/lib/mongo/auth/scram.rb +75 -0
  31. data/lib/mongo/auth/scram256/conversation.rb +66 -0
  32. data/lib/mongo/auth/scram256.rb +34 -0
  33. data/lib/mongo/auth/scram_conversation_base.rb +378 -0
  34. data/lib/mongo/auth/stringprep/profiles/sasl.rb +77 -0
  35. data/lib/mongo/auth/stringprep/tables.rb +3236 -0
  36. data/lib/mongo/auth/stringprep/unicode_normalize/normalize.rb +175 -0
  37. data/lib/mongo/auth/stringprep/unicode_normalize/tables.rb +1171 -0
  38. data/lib/mongo/auth/stringprep.rb +118 -0
  39. data/lib/mongo/auth/user/view.rb +165 -0
  40. data/lib/mongo/auth/user.rb +225 -0
  41. data/lib/mongo/auth/x509/conversation.rb +70 -0
  42. data/lib/mongo/auth/x509.rb +60 -0
  43. data/lib/mongo/auth.rb +186 -0
  44. data/lib/mongo/background_thread.rb +173 -0
  45. data/lib/mongo/bson.rb +35 -0
  46. data/lib/mongo/bulk_write/combineable.rb +75 -0
  47. data/lib/mongo/bulk_write/ordered_combiner.rb +58 -0
  48. data/lib/mongo/bulk_write/result.rb +194 -0
  49. data/lib/mongo/bulk_write/result_combiner.rb +133 -0
  50. data/lib/mongo/bulk_write/transformable.rb +156 -0
  51. data/lib/mongo/bulk_write/unordered_combiner.rb +55 -0
  52. data/lib/mongo/bulk_write/validatable.rb +76 -0
  53. data/lib/mongo/bulk_write.rb +289 -0
  54. data/lib/mongo/caching_cursor.rb +77 -0
  55. data/lib/mongo/client.rb +1426 -0
  56. data/lib/mongo/client_encryption.rb +106 -0
  57. data/lib/mongo/cluster/periodic_executor.rb +104 -0
  58. data/lib/mongo/cluster/reapers/cursor_reaper.rb +159 -0
  59. data/lib/mongo/cluster/reapers/socket_reaper.rb +65 -0
  60. data/lib/mongo/cluster/sdam_flow.rb +620 -0
  61. data/lib/mongo/cluster/topology/base.rb +221 -0
  62. data/lib/mongo/cluster/topology/no_replica_set_options.rb +37 -0
  63. data/lib/mongo/cluster/topology/replica_set_no_primary.rb +172 -0
  64. data/lib/mongo/cluster/topology/replica_set_with_primary.rb +30 -0
  65. data/lib/mongo/cluster/topology/sharded.rb +138 -0
  66. data/lib/mongo/cluster/topology/single.rb +147 -0
  67. data/lib/mongo/cluster/topology/unknown.rb +139 -0
  68. data/lib/mongo/cluster/topology.rb +112 -0
  69. data/lib/mongo/cluster.rb +988 -0
  70. data/lib/mongo/cluster_time.rb +142 -0
  71. data/lib/mongo/collection/view/aggregation.rb +166 -0
  72. data/lib/mongo/collection/view/builder/aggregation.rb +142 -0
  73. data/lib/mongo/collection/view/builder/find_command.rb +173 -0
  74. data/lib/mongo/collection/view/builder/flags.rb +65 -0
  75. data/lib/mongo/collection/view/builder/map_reduce.rb +173 -0
  76. data/lib/mongo/collection/view/builder/modifiers.rb +83 -0
  77. data/lib/mongo/collection/view/builder/op_query.rb +94 -0
  78. data/lib/mongo/collection/view/builder.rb +23 -0
  79. data/lib/mongo/collection/view/change_stream/retryable.rb +43 -0
  80. data/lib/mongo/collection/view/change_stream.rb +372 -0
  81. data/lib/mongo/collection/view/explainable.rb +86 -0
  82. data/lib/mongo/collection/view/immutable.rb +39 -0
  83. data/lib/mongo/collection/view/iterable.rb +182 -0
  84. data/lib/mongo/collection/view/map_reduce.rb +279 -0
  85. data/lib/mongo/collection/view/readable.rb +686 -0
  86. data/lib/mongo/collection/view/writable.rb +474 -0
  87. data/lib/mongo/collection/view.rb +223 -0
  88. data/lib/mongo/collection.rb +807 -1016
  89. data/lib/mongo/crypt/auto_decryption_context.rb +43 -0
  90. data/lib/mongo/crypt/auto_encrypter.rb +182 -0
  91. data/lib/mongo/crypt/auto_encryption_context.rb +47 -0
  92. data/lib/mongo/crypt/binary.rb +158 -0
  93. data/lib/mongo/crypt/binding.rb +1232 -0
  94. data/lib/mongo/crypt/context.rb +138 -0
  95. data/lib/mongo/crypt/data_key_context.rb +165 -0
  96. data/lib/mongo/crypt/encryption_io.rb +309 -0
  97. data/lib/mongo/crypt/explicit_decryption_context.rb +43 -0
  98. data/lib/mongo/crypt/explicit_encrypter.rb +120 -0
  99. data/lib/mongo/crypt/explicit_encryption_context.rb +92 -0
  100. data/lib/mongo/crypt/handle.rb +318 -0
  101. data/lib/mongo/crypt/hooks.rb +93 -0
  102. data/lib/mongo/crypt/kms_context.rb +70 -0
  103. data/lib/mongo/crypt/status.rb +134 -0
  104. data/lib/mongo/crypt.rb +36 -0
  105. data/lib/mongo/cursor/builder/get_more_command.rb +80 -0
  106. data/lib/mongo/cursor/builder/kill_cursors_command.rb +111 -0
  107. data/lib/mongo/cursor/builder/op_get_more.rb +64 -0
  108. data/lib/mongo/cursor/builder/op_kill_cursors.rb +106 -0
  109. data/lib/mongo/cursor/builder.rb +21 -0
  110. data/lib/mongo/cursor.rb +336 -505
  111. data/lib/mongo/database/view.rb +199 -0
  112. data/lib/mongo/database.rb +457 -0
  113. data/lib/mongo/dbref.rb +124 -0
  114. data/lib/mongo/distinguishing_semaphore.rb +58 -0
  115. data/lib/mongo/error/auth_error.rb +32 -0
  116. data/lib/mongo/error/bulk_write_error.rb +76 -0
  117. data/lib/mongo/error/change_stream_resumable.rb +40 -0
  118. data/lib/mongo/error/closed_stream.rb +37 -0
  119. data/lib/mongo/error/connection_check_out_timeout.rb +51 -0
  120. data/lib/mongo/error/connection_perished.rb +26 -0
  121. data/lib/mongo/error/credential_check_error.rb +29 -0
  122. data/lib/mongo/error/crypt_error.rb +34 -0
  123. data/lib/mongo/error/extra_file_chunk.rb +37 -0
  124. data/lib/mongo/error/failed_string_prep_validation.rb +41 -0
  125. data/lib/mongo/error/file_not_found.rb +40 -0
  126. data/lib/mongo/error/handshake_error.rb +27 -0
  127. data/lib/mongo/error/insufficient_iteration_count.rb +41 -0
  128. data/lib/mongo/error/internal_driver_error.rb +25 -0
  129. data/lib/mongo/error/invalid_address.rb +27 -0
  130. data/lib/mongo/error/invalid_application_name.rb +41 -0
  131. data/lib/mongo/error/invalid_bulk_operation.rb +40 -0
  132. data/lib/mongo/error/invalid_bulk_operation_type.rb +39 -0
  133. data/lib/mongo/error/invalid_collection_name.rb +42 -0
  134. data/lib/mongo/error/invalid_cursor_operation.rb +30 -0
  135. data/lib/mongo/error/invalid_database_name.rb +42 -0
  136. data/lib/mongo/error/invalid_document.rb +42 -0
  137. data/lib/mongo/error/invalid_file.rb +41 -0
  138. data/lib/mongo/error/invalid_file_revision.rb +40 -0
  139. data/lib/mongo/error/invalid_min_pool_size.rb +38 -0
  140. data/lib/mongo/error/invalid_nonce.rb +49 -0
  141. data/lib/mongo/error/invalid_read_concern.rb +31 -0
  142. data/lib/mongo/error/invalid_read_option.rb +38 -0
  143. data/lib/mongo/error/invalid_replacement_document.rb +42 -0
  144. data/lib/mongo/error/invalid_server_auth_host.rb +25 -0
  145. data/lib/mongo/error/invalid_server_auth_response.rb +26 -0
  146. data/lib/mongo/error/invalid_server_preference.rb +68 -0
  147. data/lib/mongo/error/invalid_session.rb +40 -0
  148. data/lib/mongo/error/invalid_signature.rb +50 -0
  149. data/lib/mongo/error/invalid_transaction_operation.rb +85 -0
  150. data/lib/mongo/error/invalid_txt_record.rb +30 -0
  151. data/lib/mongo/error/invalid_update_document.rb +42 -0
  152. data/lib/mongo/error/invalid_uri.rb +42 -0
  153. data/lib/mongo/error/invalid_write_concern.rb +38 -0
  154. data/lib/mongo/error/kms_error.rb +25 -0
  155. data/lib/mongo/error/lint_error.rb +38 -0
  156. data/lib/mongo/error/max_bson_size.rb +54 -0
  157. data/lib/mongo/error/max_message_size.rb +45 -0
  158. data/lib/mongo/error/mismatched_domain.rb +30 -0
  159. data/lib/mongo/error/missing_file_chunk.rb +41 -0
  160. data/lib/mongo/error/missing_password.rb +32 -0
  161. data/lib/mongo/error/missing_resume_token.rb +42 -0
  162. data/lib/mongo/error/missing_scram_server_signature.rb +30 -0
  163. data/lib/mongo/error/mongocryptd_spawn_error.rb +25 -0
  164. data/lib/mongo/error/multi_index_drop.rb +37 -0
  165. data/lib/mongo/error/need_primary_server.rb +26 -0
  166. data/lib/mongo/error/no_server_available.rb +51 -0
  167. data/lib/mongo/error/no_srv_records.rb +29 -0
  168. data/lib/mongo/error/notable.rb +83 -0
  169. data/lib/mongo/error/operation_failure.rb +311 -0
  170. data/lib/mongo/error/parser.rb +294 -0
  171. data/lib/mongo/error/pool_closed_error.rb +53 -0
  172. data/lib/mongo/error/raise_original_error.rb +32 -0
  173. data/lib/mongo/error/sdam_error_detection.rb +83 -0
  174. data/lib/mongo/error/server_api_conflict.rb +26 -0
  175. data/lib/mongo/error/server_api_not_supported.rb +27 -0
  176. data/lib/mongo/error/server_certificate_revoked.rb +25 -0
  177. data/lib/mongo/error/session_ended.rb +30 -0
  178. data/lib/mongo/error/sessions_not_supported.rb +38 -0
  179. data/lib/mongo/error/socket_error.rb +29 -0
  180. data/lib/mongo/error/socket_timeout_error.rb +29 -0
  181. data/lib/mongo/error/unchangeable_collection_option.rb +41 -0
  182. data/lib/mongo/error/unexpected_chunk_length.rb +42 -0
  183. data/lib/mongo/error/unexpected_response.rb +41 -0
  184. data/lib/mongo/error/unknown_payload_type.rb +44 -0
  185. data/lib/mongo/error/unmet_dependency.rb +24 -0
  186. data/lib/mongo/error/unsupported_array_filters.rb +59 -0
  187. data/lib/mongo/error/unsupported_collation.rb +59 -0
  188. data/lib/mongo/error/unsupported_features.rb +28 -0
  189. data/lib/mongo/error/unsupported_message_type.rb +26 -0
  190. data/lib/mongo/error/unsupported_option.rb +104 -0
  191. data/lib/mongo/error/write_retryable.rb +30 -0
  192. data/lib/mongo/error.rb +246 -0
  193. data/lib/mongo/event/base.rb +45 -0
  194. data/lib/mongo/event/listeners.rb +66 -0
  195. data/lib/mongo/event/publisher.rb +45 -0
  196. data/lib/mongo/event/subscriber.rb +44 -0
  197. data/lib/mongo/event.rb +50 -0
  198. data/lib/mongo/grid/file/chunk.rb +191 -0
  199. data/lib/mongo/grid/file/info.rb +268 -0
  200. data/lib/mongo/grid/file.rb +124 -0
  201. data/lib/mongo/grid/fs_bucket.rb +517 -0
  202. data/lib/mongo/grid/stream/read.rb +244 -0
  203. data/lib/mongo/grid/stream/write.rb +213 -0
  204. data/lib/mongo/grid/stream.rb +67 -0
  205. data/lib/mongo/grid.rb +20 -0
  206. data/lib/mongo/id.rb +67 -0
  207. data/lib/mongo/index/view.rb +358 -0
  208. data/lib/mongo/index.rb +73 -0
  209. data/lib/mongo/lint.rb +105 -0
  210. data/lib/mongo/loggable.rb +112 -0
  211. data/lib/mongo/logger.rb +87 -0
  212. data/lib/mongo/monitoring/cmap_log_subscriber.rb +56 -0
  213. data/lib/mongo/monitoring/command_log_subscriber.rb +132 -0
  214. data/lib/mongo/monitoring/event/cmap/base.rb +31 -0
  215. data/lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb +88 -0
  216. data/lib/mongo/monitoring/event/cmap/connection_check_out_started.rb +59 -0
  217. data/lib/mongo/monitoring/event/cmap/connection_checked_in.rb +74 -0
  218. data/lib/mongo/monitoring/event/cmap/connection_checked_out.rb +75 -0
  219. data/lib/mongo/monitoring/event/cmap/connection_closed.rb +106 -0
  220. data/lib/mongo/monitoring/event/cmap/connection_created.rb +67 -0
  221. data/lib/mongo/monitoring/event/cmap/connection_ready.rb +67 -0
  222. data/lib/mongo/monitoring/event/cmap/pool_cleared.rb +60 -0
  223. data/lib/mongo/monitoring/event/cmap/pool_closed.rb +68 -0
  224. data/lib/mongo/monitoring/event/cmap/pool_created.rb +75 -0
  225. data/lib/mongo/monitoring/event/cmap.rb +28 -0
  226. data/lib/mongo/monitoring/event/command_failed.rb +147 -0
  227. data/lib/mongo/monitoring/event/command_started.rb +183 -0
  228. data/lib/mongo/monitoring/event/command_succeeded.rb +157 -0
  229. data/lib/mongo/monitoring/event/secure.rb +112 -0
  230. data/lib/mongo/monitoring/event/server_closed.rb +62 -0
  231. data/lib/mongo/monitoring/event/server_description_changed.rb +99 -0
  232. data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +92 -0
  233. data/lib/mongo/monitoring/event/server_heartbeat_started.rb +65 -0
  234. data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +84 -0
  235. data/lib/mongo/monitoring/event/server_opening.rb +62 -0
  236. data/lib/mongo/monitoring/event/topology_changed.rb +63 -0
  237. data/lib/mongo/monitoring/event/topology_closed.rb +57 -0
  238. data/lib/mongo/monitoring/event/topology_opening.rb +57 -0
  239. data/lib/mongo/monitoring/event.rb +32 -0
  240. data/lib/mongo/monitoring/publishable.rb +122 -0
  241. data/lib/mongo/monitoring/sdam_log_subscriber.rb +57 -0
  242. data/lib/mongo/monitoring/server_closed_log_subscriber.rb +33 -0
  243. data/lib/mongo/monitoring/server_description_changed_log_subscriber.rb +44 -0
  244. data/lib/mongo/monitoring/server_opening_log_subscriber.rb +33 -0
  245. data/lib/mongo/monitoring/topology_changed_log_subscriber.rb +43 -0
  246. data/lib/mongo/monitoring/topology_closed_log_subscriber.rb +33 -0
  247. data/lib/mongo/monitoring/topology_opening_log_subscriber.rb +33 -0
  248. data/lib/mongo/monitoring/unified_sdam_log_subscriber.rb +65 -0
  249. data/lib/mongo/monitoring.rb +379 -0
  250. data/lib/mongo/operation/aggregate/command.rb +47 -0
  251. data/lib/mongo/operation/aggregate/op_msg.rb +34 -0
  252. data/lib/mongo/operation/aggregate/result.rb +104 -0
  253. data/lib/mongo/operation/aggregate.rb +39 -0
  254. data/lib/mongo/operation/collections_info/command.rb +48 -0
  255. data/lib/mongo/operation/collections_info/result.rb +59 -0
  256. data/lib/mongo/operation/collections_info.rb +51 -0
  257. data/lib/mongo/operation/command/command.rb +41 -0
  258. data/lib/mongo/operation/command/op_msg.rb +31 -0
  259. data/lib/mongo/operation/command.rb +34 -0
  260. data/lib/mongo/operation/context.rb +102 -0
  261. data/lib/mongo/operation/count/command.rb +41 -0
  262. data/lib/mongo/operation/count/op_msg.rb +32 -0
  263. data/lib/mongo/operation/count.rb +34 -0
  264. data/lib/mongo/operation/create/command.rb +41 -0
  265. data/lib/mongo/operation/create/op_msg.rb +32 -0
  266. data/lib/mongo/operation/create.rb +34 -0
  267. data/lib/mongo/operation/create_index/command.rb +45 -0
  268. data/lib/mongo/operation/create_index/op_msg.rb +41 -0
  269. data/lib/mongo/operation/create_index.rb +34 -0
  270. data/lib/mongo/operation/create_user/command.rb +46 -0
  271. data/lib/mongo/operation/create_user/op_msg.rb +38 -0
  272. data/lib/mongo/operation/create_user.rb +34 -0
  273. data/lib/mongo/operation/delete/bulk_result.rb +51 -0
  274. data/lib/mongo/operation/delete/command.rb +49 -0
  275. data/lib/mongo/operation/delete/legacy.rb +57 -0
  276. data/lib/mongo/operation/delete/op_msg.rb +48 -0
  277. data/lib/mongo/operation/delete/result.rb +48 -0
  278. data/lib/mongo/operation/delete.rb +41 -0
  279. data/lib/mongo/operation/distinct/command.rb +41 -0
  280. data/lib/mongo/operation/distinct/op_msg.rb +33 -0
  281. data/lib/mongo/operation/distinct.rb +34 -0
  282. data/lib/mongo/operation/drop/command.rb +41 -0
  283. data/lib/mongo/operation/drop/op_msg.rb +32 -0
  284. data/lib/mongo/operation/drop.rb +34 -0
  285. data/lib/mongo/operation/drop_database/command.rb +41 -0
  286. data/lib/mongo/operation/drop_database/op_msg.rb +32 -0
  287. data/lib/mongo/operation/drop_database.rb +34 -0
  288. data/lib/mongo/operation/drop_index/command.rb +45 -0
  289. data/lib/mongo/operation/drop_index/op_msg.rb +38 -0
  290. data/lib/mongo/operation/drop_index.rb +34 -0
  291. data/lib/mongo/operation/explain/command.rb +46 -0
  292. data/lib/mongo/operation/explain/legacy.rb +45 -0
  293. data/lib/mongo/operation/explain/op_msg.rb +40 -0
  294. data/lib/mongo/operation/explain/result.rb +56 -0
  295. data/lib/mongo/operation/explain.rb +36 -0
  296. data/lib/mongo/operation/find/command.rb +42 -0
  297. data/lib/mongo/operation/find/legacy/result.rb +46 -0
  298. data/lib/mongo/operation/find/legacy.rb +43 -0
  299. data/lib/mongo/operation/find/op_msg.rb +34 -0
  300. data/lib/mongo/operation/find/result.rb +76 -0
  301. data/lib/mongo/operation/find.rb +36 -0
  302. data/lib/mongo/operation/get_more/command.rb +42 -0
  303. data/lib/mongo/operation/get_more/legacy.rb +39 -0
  304. data/lib/mongo/operation/get_more/op_msg.rb +33 -0
  305. data/lib/mongo/operation/get_more/result.rb +75 -0
  306. data/lib/mongo/operation/get_more.rb +36 -0
  307. data/lib/mongo/operation/indexes/command.rb +42 -0
  308. data/lib/mongo/operation/indexes/legacy.rb +48 -0
  309. data/lib/mongo/operation/indexes/op_msg.rb +34 -0
  310. data/lib/mongo/operation/indexes/result.rb +105 -0
  311. data/lib/mongo/operation/indexes.rb +50 -0
  312. data/lib/mongo/operation/insert/bulk_result.rb +112 -0
  313. data/lib/mongo/operation/insert/command.rb +59 -0
  314. data/lib/mongo/operation/insert/legacy.rb +68 -0
  315. data/lib/mongo/operation/insert/op_msg.rb +54 -0
  316. data/lib/mongo/operation/insert/result.rb +75 -0
  317. data/lib/mongo/operation/insert.rb +44 -0
  318. data/lib/mongo/operation/kill_cursors/command.rb +40 -0
  319. data/lib/mongo/operation/kill_cursors/legacy.rb +40 -0
  320. data/lib/mongo/operation/kill_cursors/op_msg.rb +32 -0
  321. data/lib/mongo/operation/kill_cursors.rb +35 -0
  322. data/lib/mongo/operation/list_collections/command.rb +46 -0
  323. data/lib/mongo/operation/list_collections/op_msg.rb +39 -0
  324. data/lib/mongo/operation/list_collections/result.rb +113 -0
  325. data/lib/mongo/operation/list_collections.rb +35 -0
  326. data/lib/mongo/operation/map_reduce/command.rb +43 -0
  327. data/lib/mongo/operation/map_reduce/op_msg.rb +34 -0
  328. data/lib/mongo/operation/map_reduce/result.rb +142 -0
  329. data/lib/mongo/operation/map_reduce.rb +35 -0
  330. data/lib/mongo/operation/op_msg_base.rb +33 -0
  331. data/lib/mongo/operation/parallel_scan/command.rb +57 -0
  332. data/lib/mongo/operation/parallel_scan/op_msg.rb +46 -0
  333. data/lib/mongo/operation/parallel_scan/result.rb +68 -0
  334. data/lib/mongo/operation/parallel_scan.rb +35 -0
  335. data/lib/mongo/operation/remove_user/command.rb +46 -0
  336. data/lib/mongo/operation/remove_user/op_msg.rb +38 -0
  337. data/lib/mongo/operation/remove_user.rb +34 -0
  338. data/lib/mongo/operation/result.rb +461 -0
  339. data/lib/mongo/operation/shared/bypass_document_validation.rb +46 -0
  340. data/lib/mongo/operation/shared/causal_consistency_supported.rb +45 -0
  341. data/lib/mongo/operation/shared/executable.rb +116 -0
  342. data/lib/mongo/operation/shared/executable_no_validate.rb +32 -0
  343. data/lib/mongo/operation/shared/executable_transaction_label.rb +30 -0
  344. data/lib/mongo/operation/shared/idable.rb +68 -0
  345. data/lib/mongo/operation/shared/limited.rb +42 -0
  346. data/lib/mongo/operation/shared/object_id_generator.rb +40 -0
  347. data/lib/mongo/operation/shared/op_msg_or_command.rb +41 -0
  348. data/lib/mongo/operation/shared/op_msg_or_find_command.rb +44 -0
  349. data/lib/mongo/operation/shared/polymorphic_lookup.rb +36 -0
  350. data/lib/mongo/operation/shared/polymorphic_operation.rb +42 -0
  351. data/lib/mongo/operation/shared/polymorphic_result.rb +50 -0
  352. data/lib/mongo/operation/shared/read_preference_supported.rb +114 -0
  353. data/lib/mongo/operation/shared/response_handling.rb +172 -0
  354. data/lib/mongo/operation/shared/result/aggregatable.rb +74 -0
  355. data/lib/mongo/operation/shared/result/use_legacy_error_parser.rb +32 -0
  356. data/lib/mongo/operation/shared/sessions_supported.rb +254 -0
  357. data/lib/mongo/operation/shared/specifiable.rb +585 -0
  358. data/lib/mongo/operation/shared/write.rb +90 -0
  359. data/lib/mongo/operation/shared/write_concern_supported.rb +43 -0
  360. data/lib/mongo/operation/update/bulk_result.rb +129 -0
  361. data/lib/mongo/operation/update/command.rb +50 -0
  362. data/lib/mongo/operation/update/legacy/result.rb +112 -0
  363. data/lib/mongo/operation/update/legacy.rb +68 -0
  364. data/lib/mongo/operation/update/op_msg.rb +48 -0
  365. data/lib/mongo/operation/update/result.rb +113 -0
  366. data/lib/mongo/operation/update.rb +41 -0
  367. data/lib/mongo/operation/update_user/command.rb +45 -0
  368. data/lib/mongo/operation/update_user/op_msg.rb +38 -0
  369. data/lib/mongo/operation/update_user.rb +34 -0
  370. data/lib/mongo/operation/users_info/command.rb +46 -0
  371. data/lib/mongo/operation/users_info/op_msg.rb +39 -0
  372. data/lib/mongo/operation/users_info/result.rb +48 -0
  373. data/lib/mongo/operation/users_info.rb +35 -0
  374. data/lib/mongo/operation.rb +106 -0
  375. data/lib/mongo/options/mapper.rb +129 -0
  376. data/lib/mongo/options/redacted.rb +159 -0
  377. data/lib/mongo/options.rb +19 -0
  378. data/lib/mongo/protocol/bit_vector.rb +67 -0
  379. data/lib/mongo/protocol/compressed.rb +184 -0
  380. data/lib/mongo/protocol/delete.rb +172 -0
  381. data/lib/mongo/protocol/get_more.rb +165 -0
  382. data/lib/mongo/protocol/insert.rb +181 -0
  383. data/lib/mongo/protocol/kill_cursors.rb +133 -0
  384. data/lib/mongo/protocol/message.rb +465 -0
  385. data/lib/mongo/protocol/msg.rb +404 -0
  386. data/lib/mongo/protocol/query.rb +356 -0
  387. data/lib/mongo/protocol/registry.rb +79 -0
  388. data/lib/mongo/protocol/reply.rb +207 -0
  389. data/lib/mongo/protocol/serializers.rb +460 -0
  390. data/lib/mongo/protocol/update.rb +214 -0
  391. data/lib/mongo/protocol.rb +21 -0
  392. data/lib/mongo/query_cache.rb +275 -0
  393. data/lib/mongo/retryable.rb +496 -0
  394. data/lib/mongo/semaphore.rb +49 -0
  395. data/lib/mongo/server/app_metadata.rb +267 -0
  396. data/lib/mongo/server/connection.rb +326 -0
  397. data/lib/mongo/server/connection_base.rb +265 -0
  398. data/lib/mongo/server/connection_common.rb +168 -0
  399. data/lib/mongo/server/connection_pool/populator.rb +61 -0
  400. data/lib/mongo/server/connection_pool.rb +802 -0
  401. data/lib/mongo/server/context.rb +72 -0
  402. data/lib/mongo/server/description/features.rb +151 -0
  403. data/lib/mongo/server/description.rb +832 -0
  404. data/lib/mongo/server/monitor/app_metadata.rb +37 -0
  405. data/lib/mongo/server/monitor/connection.rb +269 -0
  406. data/lib/mongo/server/monitor.rb +339 -0
  407. data/lib/mongo/server/pending_connection.rb +272 -0
  408. data/lib/mongo/server/push_monitor/connection.rb +31 -0
  409. data/lib/mongo/server/push_monitor.rb +194 -0
  410. data/lib/mongo/server/round_trip_time_averager.rb +76 -0
  411. data/lib/mongo/server.rb +584 -0
  412. data/lib/mongo/server_selector/base.rb +625 -0
  413. data/lib/mongo/server_selector/nearest.rb +110 -0
  414. data/lib/mongo/server_selector/primary.rb +110 -0
  415. data/lib/mongo/server_selector/primary_preferred.rb +115 -0
  416. data/lib/mongo/server_selector/secondary.rb +109 -0
  417. data/lib/mongo/server_selector/secondary_preferred.rb +113 -0
  418. data/lib/mongo/server_selector.rb +91 -0
  419. data/lib/mongo/session/server_session.rb +122 -0
  420. data/lib/mongo/session/session_pool.rb +155 -0
  421. data/lib/mongo/session.rb +1074 -0
  422. data/lib/mongo/socket/ocsp_cache.rb +100 -0
  423. data/lib/mongo/socket/ocsp_verifier.rb +376 -0
  424. data/lib/mongo/socket/ssl.rb +395 -0
  425. data/lib/mongo/socket/tcp.rb +97 -0
  426. data/lib/mongo/socket/unix.rb +63 -0
  427. data/lib/mongo/socket.rb +463 -0
  428. data/lib/mongo/srv/monitor.rb +113 -0
  429. data/lib/mongo/srv/resolver.rb +137 -0
  430. data/lib/mongo/srv/result.rb +128 -0
  431. data/lib/mongo/srv.rb +20 -0
  432. data/lib/mongo/timeout.rb +54 -0
  433. data/lib/mongo/topology_version.rb +92 -0
  434. data/lib/mongo/uri/options_mapper.rb +623 -0
  435. data/lib/mongo/uri/srv_protocol.rb +241 -0
  436. data/lib/mongo/uri.rb +528 -0
  437. data/lib/mongo/utils.rb +118 -0
  438. data/lib/mongo/version.rb +24 -0
  439. data/lib/mongo/write_concern/acknowledged.rb +65 -0
  440. data/lib/mongo/write_concern/base.rb +70 -0
  441. data/lib/mongo/write_concern/unacknowledged.rb +68 -0
  442. data/lib/mongo/write_concern.rb +99 -0
  443. data/lib/mongo.rb +98 -71
  444. data/mongo.gemspec +29 -18
  445. data/spec/NOTES.aws-auth.md +296 -0
  446. data/spec/README.aws-auth.md +318 -0
  447. data/spec/README.md +715 -0
  448. data/spec/USERS.md +72 -0
  449. data/spec/atlas/atlas_connectivity_spec.rb +27 -0
  450. data/spec/atlas/operations_spec.rb +28 -0
  451. data/spec/integration/auth_spec.rb +279 -0
  452. data/spec/integration/awaited_ismaster_spec.rb +31 -0
  453. data/spec/integration/aws_auth_request_spec.rb +77 -0
  454. data/spec/integration/aws_credentials_retriever_spec.rb +106 -0
  455. data/spec/integration/bson_symbol_spec.rb +39 -0
  456. data/spec/integration/bulk_insert_spec.rb +83 -0
  457. data/spec/integration/bulk_write_error_message_spec.rb +41 -0
  458. data/spec/integration/bulk_write_spec.rb +70 -0
  459. data/spec/integration/change_stream_examples_spec.rb +208 -0
  460. data/spec/integration/change_stream_spec.rb +808 -0
  461. data/spec/integration/check_clean_slate_spec.rb +19 -0
  462. data/spec/integration/client_authentication_options_spec.rb +514 -0
  463. data/spec/integration/client_connectivity_spec.rb +41 -0
  464. data/spec/integration/client_construction_aws_auth_spec.rb +194 -0
  465. data/spec/integration/client_construction_spec.rb +239 -0
  466. data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +360 -0
  467. data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +306 -0
  468. data/spec/integration/client_side_encryption/auto_encryption_mongocryptd_spawn_spec.rb +75 -0
  469. data/spec/integration/client_side_encryption/auto_encryption_old_wire_version_spec.rb +82 -0
  470. data/spec/integration/client_side_encryption/auto_encryption_reconnect_spec.rb +224 -0
  471. data/spec/integration/client_side_encryption/auto_encryption_spec.rb +604 -0
  472. data/spec/integration/client_side_encryption/bson_size_limit_spec.rb +190 -0
  473. data/spec/integration/client_side_encryption/bypass_mongocryptd_spawn_spec.rb +81 -0
  474. data/spec/integration/client_side_encryption/client_close_spec.rb +66 -0
  475. data/spec/integration/client_side_encryption/corpus_spec.rb +236 -0
  476. data/spec/integration/client_side_encryption/custom_endpoint_spec.rb +135 -0
  477. data/spec/integration/client_side_encryption/data_key_spec.rb +168 -0
  478. data/spec/integration/client_side_encryption/explicit_encryption_spec.rb +117 -0
  479. data/spec/integration/client_side_encryption/external_key_vault_spec.rb +144 -0
  480. data/spec/integration/client_side_encryption/views_spec.rb +47 -0
  481. data/spec/integration/client_spec.rb +47 -0
  482. data/spec/integration/client_update_spec.rb +157 -0
  483. data/spec/integration/collection_indexes_prose_spec.rb +58 -0
  484. data/spec/integration/command_monitoring_spec.rb +184 -0
  485. data/spec/integration/command_spec.rb +179 -0
  486. data/spec/integration/connect_single_rs_name_spec.rb +75 -0
  487. data/spec/integration/connection_pool_populator_spec.rb +305 -0
  488. data/spec/integration/connection_spec.rb +336 -0
  489. data/spec/integration/crud_spec.rb +193 -0
  490. data/spec/integration/cursor_reaping_spec.rb +139 -0
  491. data/spec/integration/docs_examples_spec.rb +207 -0
  492. data/spec/integration/error_detection_spec.rb +42 -0
  493. data/spec/integration/fork_reconnect_spec.rb +204 -0
  494. data/spec/integration/get_more_spec.rb +42 -0
  495. data/spec/integration/grid_fs_bucket_spec.rb +51 -0
  496. data/spec/integration/heartbeat_events_spec.rb +102 -0
  497. data/spec/integration/mmapv1_spec.rb +31 -0
  498. data/spec/integration/mongos_pinning_spec.rb +37 -0
  499. data/spec/integration/ocsp_connectivity_spec.rb +29 -0
  500. data/spec/integration/ocsp_verifier_cache_spec.rb +191 -0
  501. data/spec/integration/ocsp_verifier_spec.rb +355 -0
  502. data/spec/integration/operation_failure_code_spec.rb +29 -0
  503. data/spec/integration/operation_failure_message_spec.rb +90 -0
  504. data/spec/integration/query_cache_spec.rb +1093 -0
  505. data/spec/integration/query_cache_transactions_spec.rb +193 -0
  506. data/spec/integration/read_concern_spec.rb +92 -0
  507. data/spec/integration/read_preference_spec.rb +544 -0
  508. data/spec/integration/reconnect_spec.rb +177 -0
  509. data/spec/integration/retryable_errors_spec.rb +286 -0
  510. data/spec/integration/retryable_writes/retryable_writes_36_and_older_spec.rb +764 -0
  511. data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +405 -0
  512. data/spec/integration/retryable_writes/shared/adds_diagnostics.rb +18 -0
  513. data/spec/integration/retryable_writes/shared/does_not_support_retries.rb +27 -0
  514. data/spec/integration/retryable_writes/shared/only_supports_legacy_retries.rb +28 -0
  515. data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +220 -0
  516. data/spec/integration/retryable_writes/shared/performs_modern_retries.rb +235 -0
  517. data/spec/integration/retryable_writes/shared/performs_no_retries.rb +113 -0
  518. data/spec/integration/retryable_writes/shared/supports_legacy_retries.rb +22 -0
  519. data/spec/integration/retryable_writes/shared/supports_modern_retries.rb +28 -0
  520. data/spec/integration/retryable_writes/shared/supports_retries.rb +19 -0
  521. data/spec/integration/retryable_writes_errors_spec.rb +34 -0
  522. data/spec/integration/sdam_error_handling_spec.rb +424 -0
  523. data/spec/integration/sdam_events_spec.rb +122 -0
  524. data/spec/integration/sdam_prose_spec.rb +67 -0
  525. data/spec/integration/secondary_reads_spec.rb +102 -0
  526. data/spec/integration/server_description_spec.rb +48 -0
  527. data/spec/integration/server_monitor_spec.rb +55 -0
  528. data/spec/integration/server_selection_spec.rb +39 -0
  529. data/spec/integration/server_selector_spec.rb +88 -0
  530. data/spec/integration/server_spec.rb +67 -0
  531. data/spec/integration/shell_examples_spec.rb +984 -0
  532. data/spec/integration/size_limit_spec.rb +115 -0
  533. data/spec/integration/snappy_compression_spec.rb +28 -0
  534. data/spec/integration/srv_monitoring_spec.rb +406 -0
  535. data/spec/integration/srv_spec.rb +59 -0
  536. data/spec/integration/ssl_uri_options_spec.rb +28 -0
  537. data/spec/integration/step_down_spec.rb +207 -0
  538. data/spec/integration/time_zone_querying_spec.rb +55 -0
  539. data/spec/integration/transactions_api_examples_spec.rb +62 -0
  540. data/spec/integration/transactions_examples_spec.rb +235 -0
  541. data/spec/integration/truncated_utf8_spec.rb +26 -0
  542. data/spec/integration/versioned_api_examples_spec.rb +69 -0
  543. data/spec/integration/x509_auth_spec.rb +112 -0
  544. data/spec/integration/zlib_compression_spec.rb +28 -0
  545. data/spec/integration/zstd_compression_spec.rb +29 -0
  546. data/spec/kerberos/kerberos_spec.rb +94 -0
  547. data/spec/lite_spec_helper.rb +168 -0
  548. data/spec/mongo/address/ipv4_spec.rb +102 -0
  549. data/spec/mongo/address/ipv6_spec.rb +130 -0
  550. data/spec/mongo/address/unix_spec.rb +44 -0
  551. data/spec/mongo/address/validator_spec.rb +54 -0
  552. data/spec/mongo/address_spec.rb +344 -0
  553. data/spec/mongo/auth/aws/request_region_spec.rb +45 -0
  554. data/spec/mongo/auth/aws/request_spec.rb +79 -0
  555. data/spec/mongo/auth/cr_spec.rb +79 -0
  556. data/spec/mongo/auth/gssapi/conversation_spec.rb +124 -0
  557. data/spec/mongo/auth/invalid_mechanism_spec.rb +14 -0
  558. data/spec/mongo/auth/ldap/conversation_spec.rb +46 -0
  559. data/spec/mongo/auth/ldap_spec.rb +47 -0
  560. data/spec/mongo/auth/scram/conversation_spec.rb +205 -0
  561. data/spec/mongo/auth/scram256/conversation_spec.rb +174 -0
  562. data/spec/mongo/auth/scram_negotiation_spec.rb +531 -0
  563. data/spec/mongo/auth/scram_spec.rb +122 -0
  564. data/spec/mongo/auth/stringprep/profiles/sasl_spec.rb +116 -0
  565. data/spec/mongo/auth/stringprep_spec.rb +191 -0
  566. data/spec/mongo/auth/user/view_spec.rb +489 -0
  567. data/spec/mongo/auth/user_spec.rb +343 -0
  568. data/spec/mongo/auth/x509/conversation_spec.rb +72 -0
  569. data/spec/mongo/auth/x509_spec.rb +73 -0
  570. data/spec/mongo/auth_spec.rb +68 -0
  571. data/spec/mongo/bson_spec.rb +14 -0
  572. data/spec/mongo/bulk_write/ordered_combiner_spec.rb +287 -0
  573. data/spec/mongo/bulk_write/result_spec.rb +127 -0
  574. data/spec/mongo/bulk_write/unordered_combiner_spec.rb +242 -0
  575. data/spec/mongo/bulk_write_spec.rb +2393 -0
  576. data/spec/mongo/caching_cursor_spec.rb +73 -0
  577. data/spec/mongo/client_construction_spec.rb +2389 -0
  578. data/spec/mongo/client_encryption_spec.rb +414 -0
  579. data/spec/mongo/client_spec.rb +964 -0
  580. data/spec/mongo/cluster/cursor_reaper_spec.rb +190 -0
  581. data/spec/mongo/cluster/periodic_executor_spec.rb +19 -0
  582. data/spec/mongo/cluster/socket_reaper_spec.rb +46 -0
  583. data/spec/mongo/cluster/topology/replica_set_spec.rb +601 -0
  584. data/spec/mongo/cluster/topology/sharded_spec.rb +158 -0
  585. data/spec/mongo/cluster/topology/single_spec.rb +192 -0
  586. data/spec/mongo/cluster/topology/unknown_spec.rb +103 -0
  587. data/spec/mongo/cluster/topology_spec.rb +211 -0
  588. data/spec/mongo/cluster_spec.rb +790 -0
  589. data/spec/mongo/cluster_time_spec.rb +151 -0
  590. data/spec/mongo/collection/view/aggregation_spec.rb +678 -0
  591. data/spec/mongo/collection/view/builder/find_command_spec.rb +524 -0
  592. data/spec/mongo/collection/view/builder/flags_spec.rb +109 -0
  593. data/spec/mongo/collection/view/builder/modifiers_spec.rb +213 -0
  594. data/spec/mongo/collection/view/builder/op_query_spec.rb +157 -0
  595. data/spec/mongo/collection/view/change_stream_resume_spec.rb +397 -0
  596. data/spec/mongo/collection/view/change_stream_spec.rb +547 -0
  597. data/spec/mongo/collection/view/explainable_spec.rb +117 -0
  598. data/spec/mongo/collection/view/immutable_spec.rb +57 -0
  599. data/spec/mongo/collection/view/iterable_spec.rb +41 -0
  600. data/spec/mongo/collection/view/map_reduce_spec.rb +868 -0
  601. data/spec/mongo/collection/view/readable_spec.rb +1485 -0
  602. data/spec/mongo/collection/view/writable_spec.rb +1864 -0
  603. data/spec/mongo/collection/view_spec.rb +424 -0
  604. data/spec/mongo/collection_crud_spec.rb +4360 -0
  605. data/spec/mongo/collection_ddl_spec.rb +537 -0
  606. data/spec/mongo/collection_spec.rb +804 -0
  607. data/spec/mongo/crypt/auto_decryption_context_spec.rb +93 -0
  608. data/spec/mongo/crypt/auto_encrypter_spec.rb +190 -0
  609. data/spec/mongo/crypt/auto_encryption_context_spec.rb +110 -0
  610. data/spec/mongo/crypt/binary_spec.rb +113 -0
  611. data/spec/mongo/crypt/binding/binary_spec.rb +54 -0
  612. data/spec/mongo/crypt/binding/context_spec.rb +255 -0
  613. data/spec/mongo/crypt/binding/helpers_spec.rb +44 -0
  614. data/spec/mongo/crypt/binding/mongocrypt_spec.rb +142 -0
  615. data/spec/mongo/crypt/binding/status_spec.rb +97 -0
  616. data/spec/mongo/crypt/binding/version_spec.rb +20 -0
  617. data/spec/mongo/crypt/binding_unloaded_spec.rb +23 -0
  618. data/spec/mongo/crypt/data_key_context_spec.rb +216 -0
  619. data/spec/mongo/crypt/encryption_io_spec.rb +139 -0
  620. data/spec/mongo/crypt/explicit_decryption_context_spec.rb +75 -0
  621. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +173 -0
  622. data/spec/mongo/crypt/handle_spec.rb +235 -0
  623. data/spec/mongo/crypt/helpers/mongo_crypt_spec_helper.rb +111 -0
  624. data/spec/mongo/crypt/status_spec.rb +150 -0
  625. data/spec/mongo/cursor/builder/get_more_command_spec.rb +191 -0
  626. data/spec/mongo/cursor/builder/op_get_more_spec.rb +64 -0
  627. data/spec/mongo/cursor/builder/op_kill_cursors_spec.rb +66 -0
  628. data/spec/mongo/cursor_spec.rb +690 -0
  629. data/spec/mongo/database_spec.rb +1300 -0
  630. data/spec/mongo/dbref_spec.rb +152 -0
  631. data/spec/mongo/distinguishing_semaphore_spec.rb +66 -0
  632. data/spec/mongo/error/bulk_write_error_spec.rb +52 -0
  633. data/spec/mongo/error/crypt_error_spec.rb +29 -0
  634. data/spec/mongo/error/max_bson_size_spec.rb +38 -0
  635. data/spec/mongo/error/no_server_available_spec.rb +35 -0
  636. data/spec/mongo/error/notable_spec.rb +62 -0
  637. data/spec/mongo/error/operation_failure_heavy_spec.rb +61 -0
  638. data/spec/mongo/error/operation_failure_spec.rb +553 -0
  639. data/spec/mongo/error/parser_spec.rb +519 -0
  640. data/spec/mongo/error/unsupported_option_spec.rb +57 -0
  641. data/spec/mongo/event/publisher_spec.rb +53 -0
  642. data/spec/mongo/event/subscriber_spec.rb +37 -0
  643. data/spec/mongo/grid/file/chunk_spec.rb +230 -0
  644. data/spec/mongo/grid/file/info_spec.rb +107 -0
  645. data/spec/mongo/grid/file_spec.rb +194 -0
  646. data/spec/mongo/grid/fs_bucket_spec.rb +1263 -0
  647. data/spec/mongo/grid/stream/read_spec.rb +292 -0
  648. data/spec/mongo/grid/stream/write_spec.rb +565 -0
  649. data/spec/mongo/grid/stream_spec.rb +51 -0
  650. data/spec/mongo/id_spec.rb +38 -0
  651. data/spec/mongo/index/view_spec.rb +1171 -0
  652. data/spec/mongo/lint_spec.rb +231 -0
  653. data/spec/mongo/logger_spec.rb +62 -0
  654. data/spec/mongo/monitoring/command_log_subscriber_spec.rb +79 -0
  655. data/spec/mongo/monitoring/event/cmap/connection_check_out_failed_spec.rb +26 -0
  656. data/spec/mongo/monitoring/event/cmap/connection_check_out_started_spec.rb +22 -0
  657. data/spec/mongo/monitoring/event/cmap/connection_checked_in_spec.rb +33 -0
  658. data/spec/mongo/monitoring/event/cmap/connection_checked_out_spec.rb +33 -0
  659. data/spec/mongo/monitoring/event/cmap/connection_closed_spec.rb +30 -0
  660. data/spec/mongo/monitoring/event/cmap/connection_created_spec.rb +27 -0
  661. data/spec/mongo/monitoring/event/cmap/connection_ready_spec.rb +27 -0
  662. data/spec/mongo/monitoring/event/cmap/pool_cleared_spec.rb +22 -0
  663. data/spec/mongo/monitoring/event/cmap/pool_closed_spec.rb +29 -0
  664. data/spec/mongo/monitoring/event/cmap/pool_created_spec.rb +36 -0
  665. data/spec/mongo/monitoring/event/command_failed_spec.rb +87 -0
  666. data/spec/mongo/monitoring/event/command_started_spec.rb +51 -0
  667. data/spec/mongo/monitoring/event/command_succeeded_spec.rb +88 -0
  668. data/spec/mongo/monitoring/event/secure_spec.rb +123 -0
  669. data/spec/mongo/monitoring/event/server_closed_spec.rb +38 -0
  670. data/spec/mongo/monitoring/event/server_description_changed_spec.rb +38 -0
  671. data/spec/mongo/monitoring/event/server_heartbeat_failed_spec.rb +34 -0
  672. data/spec/mongo/monitoring/event/server_heartbeat_started_spec.rb +34 -0
  673. data/spec/mongo/monitoring/event/server_heartbeat_succeeded_spec.rb +34 -0
  674. data/spec/mongo/monitoring/event/server_opening_spec.rb +38 -0
  675. data/spec/mongo/monitoring/event/topology_changed_spec.rb +44 -0
  676. data/spec/mongo/monitoring/event/topology_closed_spec.rb +38 -0
  677. data/spec/mongo/monitoring/event/topology_opening_spec.rb +38 -0
  678. data/spec/mongo/monitoring_spec.rb +196 -0
  679. data/spec/mongo/operation/aggregate/result_spec.rb +90 -0
  680. data/spec/mongo/operation/aggregate_spec.rb +76 -0
  681. data/spec/mongo/operation/collections_info_spec.rb +48 -0
  682. data/spec/mongo/operation/command_spec.rb +86 -0
  683. data/spec/mongo/operation/create_index_spec.rb +62 -0
  684. data/spec/mongo/operation/create_user_spec.rb +53 -0
  685. data/spec/mongo/operation/delete/bulk_spec.rb +245 -0
  686. data/spec/mongo/operation/delete/command_spec.rb +115 -0
  687. data/spec/mongo/operation/delete/op_msg_spec.rb +257 -0
  688. data/spec/mongo/operation/delete_spec.rb +233 -0
  689. data/spec/mongo/operation/drop_index_spec.rb +61 -0
  690. data/spec/mongo/operation/find/legacy_spec.rb +130 -0
  691. data/spec/mongo/operation/get_more_spec.rb +63 -0
  692. data/spec/mongo/operation/indexes_spec.rb +41 -0
  693. data/spec/mongo/operation/insert/bulk_spec.rb +273 -0
  694. data/spec/mongo/operation/insert/command_spec.rb +118 -0
  695. data/spec/mongo/operation/insert/op_msg_spec.rb +288 -0
  696. data/spec/mongo/operation/insert_spec.rb +290 -0
  697. data/spec/mongo/operation/kill_cursors_spec.rb +44 -0
  698. data/spec/mongo/operation/limited_spec.rb +55 -0
  699. data/spec/mongo/operation/map_reduce_spec.rb +131 -0
  700. data/spec/mongo/operation/read_preference_legacy_spec.rb +356 -0
  701. data/spec/mongo/operation/read_preference_op_msg_spec.rb +307 -0
  702. data/spec/mongo/operation/remove_user_spec.rb +52 -0
  703. data/spec/mongo/operation/result_spec.rb +349 -0
  704. data/spec/mongo/operation/specifiable_spec.rb +87 -0
  705. data/spec/mongo/operation/update/bulk_spec.rb +239 -0
  706. data/spec/mongo/operation/update/command_spec.rb +122 -0
  707. data/spec/mongo/operation/update/op_msg_spec.rb +263 -0
  708. data/spec/mongo/operation/update_spec.rb +264 -0
  709. data/spec/mongo/operation/update_user_spec.rb +52 -0
  710. data/spec/mongo/options/redacted_spec.rb +353 -0
  711. data/spec/mongo/protocol/compressed_spec.rb +83 -0
  712. data/spec/mongo/protocol/delete_spec.rb +185 -0
  713. data/spec/mongo/protocol/get_more_spec.rb +164 -0
  714. data/spec/mongo/protocol/insert_spec.rb +179 -0
  715. data/spec/mongo/protocol/kill_cursors_spec.rb +121 -0
  716. data/spec/mongo/protocol/msg_spec.rb +528 -0
  717. data/spec/mongo/protocol/query_spec.rb +347 -0
  718. data/spec/mongo/protocol/registry_spec.rb +34 -0
  719. data/spec/mongo/protocol/reply_spec.rb +198 -0
  720. data/spec/mongo/protocol/update_spec.rb +204 -0
  721. data/spec/mongo/query_cache_middleware_spec.rb +55 -0
  722. data/spec/mongo/query_cache_spec.rb +283 -0
  723. data/spec/mongo/retryable_spec.rb +592 -0
  724. data/spec/mongo/semaphore_spec.rb +54 -0
  725. data/spec/mongo/server/app_metadata_spec.rb +170 -0
  726. data/spec/mongo/server/connection_auth_spec.rb +136 -0
  727. data/spec/mongo/server/connection_common_spec.rb +24 -0
  728. data/spec/mongo/server/connection_pool/populator_spec.rb +106 -0
  729. data/spec/mongo/server/connection_pool_spec.rb +1039 -0
  730. data/spec/mongo/server/connection_spec.rb +1285 -0
  731. data/spec/mongo/server/description/features_spec.rb +250 -0
  732. data/spec/mongo/server/description_query_methods_spec.rb +291 -0
  733. data/spec/mongo/server/description_spec.rb +846 -0
  734. data/spec/mongo/server/monitor/app_metadata_spec.rb +25 -0
  735. data/spec/mongo/server/monitor/connection_spec.rb +175 -0
  736. data/spec/mongo/server/monitor_spec.rb +324 -0
  737. data/spec/mongo/server/round_trip_time_averager_spec.rb +48 -0
  738. data/spec/mongo/server_selector/nearest_spec.rb +338 -0
  739. data/spec/mongo/server_selector/primary_preferred_spec.rb +372 -0
  740. data/spec/mongo/server_selector/primary_spec.rb +181 -0
  741. data/spec/mongo/server_selector/secondary_preferred_spec.rb +350 -0
  742. data/spec/mongo/server_selector/secondary_spec.rb +278 -0
  743. data/spec/mongo/server_selector_spec.rb +615 -0
  744. data/spec/mongo/server_spec.rb +436 -0
  745. data/spec/mongo/session/server_session_spec.rb +62 -0
  746. data/spec/mongo/session/session_pool_spec.rb +240 -0
  747. data/spec/mongo/session_spec.rb +348 -0
  748. data/spec/mongo/session_transaction_spec.rb +221 -0
  749. data/spec/mongo/socket/ssl_spec.rb +867 -0
  750. data/spec/mongo/socket/tcp_spec.rb +17 -0
  751. data/spec/mongo/socket/unix_spec.rb +55 -0
  752. data/spec/mongo/socket_spec.rb +119 -0
  753. data/spec/mongo/srv/monitor_spec.rb +233 -0
  754. data/spec/mongo/srv/result_spec.rb +57 -0
  755. data/spec/mongo/timeout_spec.rb +42 -0
  756. data/spec/mongo/tls_context_hooks_spec.rb +40 -0
  757. data/spec/mongo/uri/srv_protocol_spec.rb +1108 -0
  758. data/spec/mongo/uri_option_parsing_spec.rb +592 -0
  759. data/spec/mongo/uri_spec.rb +1286 -0
  760. data/spec/mongo/utils_spec.rb +56 -0
  761. data/spec/mongo/write_concern/acknowledged_spec.rb +58 -0
  762. data/spec/mongo/write_concern/unacknowledged_spec.rb +29 -0
  763. data/spec/mongo/write_concern_spec.rb +227 -0
  764. data/spec/runners/auth.rb +140 -0
  765. data/spec/runners/change_streams/outcome.rb +45 -0
  766. data/spec/runners/change_streams/spec.rb +60 -0
  767. data/spec/runners/change_streams/test.rb +232 -0
  768. data/spec/runners/cmap/verifier.rb +48 -0
  769. data/spec/runners/cmap.rb +373 -0
  770. data/spec/runners/command_monitoring.rb +346 -0
  771. data/spec/runners/connection_string.rb +381 -0
  772. data/spec/runners/crud/context.rb +30 -0
  773. data/spec/runners/crud/operation.rb +469 -0
  774. data/spec/runners/crud/outcome.rb +56 -0
  775. data/spec/runners/crud/requirement.rb +133 -0
  776. data/spec/runners/crud/spec.rb +73 -0
  777. data/spec/runners/crud/test.rb +123 -0
  778. data/spec/runners/crud/test_base.rb +53 -0
  779. data/spec/runners/crud/verifier.rb +217 -0
  780. data/spec/runners/crud.rb +257 -0
  781. data/spec/runners/gridfs.rb +641 -0
  782. data/spec/runners/read_write_concern_document.rb +70 -0
  783. data/spec/runners/sdam/verifier.rb +112 -0
  784. data/spec/runners/sdam.rb +278 -0
  785. data/spec/runners/server_selection.rb +365 -0
  786. data/spec/runners/server_selection_rtt.rb +41 -0
  787. data/spec/runners/transactions/operation.rb +328 -0
  788. data/spec/runners/transactions/spec.rb +29 -0
  789. data/spec/runners/transactions/test.rb +326 -0
  790. data/spec/runners/transactions.rb +104 -0
  791. data/spec/runners/unified/assertions.rb +282 -0
  792. data/spec/runners/unified/change_stream_operations.rb +29 -0
  793. data/spec/runners/unified/crud_operations.rb +206 -0
  794. data/spec/runners/unified/ddl_operations.rb +106 -0
  795. data/spec/runners/unified/entity_map.rb +42 -0
  796. data/spec/runners/unified/error.rb +28 -0
  797. data/spec/runners/unified/event_subscriber.rb +104 -0
  798. data/spec/runners/unified/exceptions.rb +24 -0
  799. data/spec/runners/unified/grid_fs_operations.rb +58 -0
  800. data/spec/runners/unified/support_operations.rb +253 -0
  801. data/spec/runners/unified/test.rb +423 -0
  802. data/spec/runners/unified/test_group.rb +31 -0
  803. data/spec/runners/unified/using_hash.rb +34 -0
  804. data/spec/runners/unified.rb +99 -0
  805. data/spec/shared/LICENSE +20 -0
  806. data/spec/shared/bin/get-mongodb-download-url +17 -0
  807. data/spec/shared/bin/s3-copy +45 -0
  808. data/spec/shared/bin/s3-upload +69 -0
  809. data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
  810. data/spec/shared/lib/mrss/cluster_config.rb +226 -0
  811. data/spec/shared/lib/mrss/constraints.rb +379 -0
  812. data/spec/shared/lib/mrss/docker_runner.rb +271 -0
  813. data/spec/shared/lib/mrss/lite_constraints.rb +191 -0
  814. data/spec/shared/lib/mrss/server_version_registry.rb +115 -0
  815. data/spec/shared/lib/mrss/spec_organizer.rb +179 -0
  816. data/spec/shared/lib/mrss/utils.rb +15 -0
  817. data/spec/shared/share/Dockerfile.erb +322 -0
  818. data/spec/shared/share/haproxy-1.conf +16 -0
  819. data/spec/shared/share/haproxy-2.conf +17 -0
  820. data/spec/shared/shlib/distro.sh +73 -0
  821. data/spec/shared/shlib/server.sh +317 -0
  822. data/spec/shared/shlib/set_env.sh +131 -0
  823. data/spec/solo/clean_exit_spec.rb +24 -0
  824. data/spec/spec_helper.rb +36 -0
  825. data/spec/spec_tests/auth_spec.rb +58 -0
  826. data/spec/spec_tests/change_streams_spec.rb +93 -0
  827. data/spec/spec_tests/change_streams_unified_spec.rb +13 -0
  828. data/spec/spec_tests/client_side_encryption_spec.rb +14 -0
  829. data/spec/spec_tests/cmap_spec.rb +109 -0
  830. data/spec/spec_tests/collection_management_spec.rb +13 -0
  831. data/spec/spec_tests/command_monitoring_spec.rb +71 -0
  832. data/spec/spec_tests/command_monitoring_unified_spec.rb +13 -0
  833. data/spec/spec_tests/connection_string_spec.rb +10 -0
  834. data/spec/spec_tests/crud_spec.rb +22 -0
  835. data/spec/spec_tests/crud_unified_spec.rb +13 -0
  836. data/spec/spec_tests/data/auth/connection-string.yml +366 -0
  837. data/spec/spec_tests/data/change_streams/change-streams-errors.yml +101 -0
  838. data/spec/spec_tests/data/change_streams/change-streams-resume-allowlist.yml +1173 -0
  839. data/spec/spec_tests/data/change_streams/change-streams-resume-errorLabels.yml +1105 -0
  840. data/spec/spec_tests/data/change_streams/change-streams.yml +535 -0
  841. data/spec/spec_tests/data/change_streams_unified/change-streams.yml +72 -0
  842. data/spec/spec_tests/data/client_side_encryption/aggregate.yml +134 -0
  843. data/spec/spec_tests/data/client_side_encryption/badQueries.yml +526 -0
  844. data/spec/spec_tests/data/client_side_encryption/badSchema.yml +73 -0
  845. data/spec/spec_tests/data/client_side_encryption/basic.yml +116 -0
  846. data/spec/spec_tests/data/client_side_encryption/bulk.yml +88 -0
  847. data/spec/spec_tests/data/client_side_encryption/bypassAutoEncryption.yml +100 -0
  848. data/spec/spec_tests/data/client_side_encryption/bypassedCommand.yml +42 -0
  849. data/spec/spec_tests/data/client_side_encryption/count.yml +61 -0
  850. data/spec/spec_tests/data/client_side_encryption/countDocuments.yml +59 -0
  851. data/spec/spec_tests/data/client_side_encryption/delete.yml +105 -0
  852. data/spec/spec_tests/data/client_side_encryption/distinct.yml +73 -0
  853. data/spec/spec_tests/data/client_side_encryption/explain.yml +64 -0
  854. data/spec/spec_tests/data/client_side_encryption/find.yml +119 -0
  855. data/spec/spec_tests/data/client_side_encryption/findOneAndDelete.yml +57 -0
  856. data/spec/spec_tests/data/client_side_encryption/findOneAndReplace.yml +57 -0
  857. data/spec/spec_tests/data/client_side_encryption/findOneAndUpdate.yml +57 -0
  858. data/spec/spec_tests/data/client_side_encryption/getMore.yml +68 -0
  859. data/spec/spec_tests/data/client_side_encryption/insert.yml +102 -0
  860. data/spec/spec_tests/data/client_side_encryption/keyAltName.yml +71 -0
  861. data/spec/spec_tests/data/client_side_encryption/localKMS.yml +54 -0
  862. data/spec/spec_tests/data/client_side_encryption/localSchema.yml +72 -0
  863. data/spec/spec_tests/data/client_side_encryption/malformedCiphertext.yml +69 -0
  864. data/spec/spec_tests/data/client_side_encryption/maxWireVersion.yml +20 -0
  865. data/spec/spec_tests/data/client_side_encryption/missingKey.yml +49 -0
  866. data/spec/spec_tests/data/client_side_encryption/replaceOne.yml +64 -0
  867. data/spec/spec_tests/data/client_side_encryption/types.yml +527 -0
  868. data/spec/spec_tests/data/client_side_encryption/unsupportedCommand.yml +25 -0
  869. data/spec/spec_tests/data/client_side_encryption/updateMany.yml +77 -0
  870. data/spec/spec_tests/data/client_side_encryption/updateOne.yml +171 -0
  871. data/spec/spec_tests/data/cmap/connection-must-have-id.yml +27 -0
  872. data/spec/spec_tests/data/cmap/connection-must-order-ids.yml +27 -0
  873. data/spec/spec_tests/data/cmap/pool-checkin-destroy-closed.yml +27 -0
  874. data/spec/spec_tests/data/cmap/pool-checkin-destroy-stale.yml +27 -0
  875. data/spec/spec_tests/data/cmap/pool-checkin-make-available.yml +24 -0
  876. data/spec/spec_tests/data/cmap/pool-checkin.yml +19 -0
  877. data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +19 -0
  878. data/spec/spec_tests/data/cmap/pool-checkout-error-closed.yml +36 -0
  879. data/spec/spec_tests/data/cmap/pool-checkout-multiple.yml +37 -0
  880. data/spec/spec_tests/data/cmap/pool-checkout-no-idle.yml +35 -0
  881. data/spec/spec_tests/data/cmap/pool-checkout-no-stale.yml +33 -0
  882. data/spec/spec_tests/data/cmap/pool-close-destroy-conns.yml +28 -0
  883. data/spec/spec_tests/data/cmap/pool-close.yml +11 -0
  884. data/spec/spec_tests/data/cmap/pool-create-max-size.yml +71 -0
  885. data/spec/spec_tests/data/cmap/pool-create-min-size.yml +34 -0
  886. data/spec/spec_tests/data/cmap/pool-create-with-options.yml +21 -0
  887. data/spec/spec_tests/data/cmap/pool-create.yml +12 -0
  888. data/spec/spec_tests/data/cmap/wait-queue-fairness.yml +124 -0
  889. data/spec/spec_tests/data/cmap/wait-queue-timeout.yml +46 -0
  890. data/spec/spec_tests/data/collection_management/timeseries-collection.yml +129 -0
  891. data/spec/spec_tests/data/command_monitoring/bulkWrite.yml +49 -0
  892. data/spec/spec_tests/data/command_monitoring/command.yml +61 -0
  893. data/spec/spec_tests/data/command_monitoring/deleteMany.yml +55 -0
  894. data/spec/spec_tests/data/command_monitoring/deleteOne.yml +55 -0
  895. data/spec/spec_tests/data/command_monitoring/find.yml +266 -0
  896. data/spec/spec_tests/data/command_monitoring/insertMany.yml +75 -0
  897. data/spec/spec_tests/data/command_monitoring/insertOne.yml +51 -0
  898. data/spec/spec_tests/data/command_monitoring/unacknowledgedBulkWrite.yml +34 -0
  899. data/spec/spec_tests/data/command_monitoring/updateMany.yml +65 -0
  900. data/spec/spec_tests/data/command_monitoring/updateOne.yml +90 -0
  901. data/spec/spec_tests/data/command_monitoring_unified/redacted-commands.yml +340 -0
  902. data/spec/spec_tests/data/connection_string/invalid-uris.yml +261 -0
  903. data/spec/spec_tests/data/connection_string/valid-auth.yml +257 -0
  904. data/spec/spec_tests/data/connection_string/valid-db-with-dotted-name.yml +77 -0
  905. data/spec/spec_tests/data/connection_string/valid-host_identifiers.yml +121 -0
  906. data/spec/spec_tests/data/connection_string/valid-options.yml +17 -0
  907. data/spec/spec_tests/data/connection_string/valid-unix_socket-absolute.yml +197 -0
  908. data/spec/spec_tests/data/connection_string/valid-unix_socket-relative.yml +213 -0
  909. data/spec/spec_tests/data/connection_string/valid-warnings.yml +75 -0
  910. data/spec/spec_tests/data/crud/read/aggregate-collation.yml +17 -0
  911. data/spec/spec_tests/data/crud/read/aggregate-out.yml +43 -0
  912. data/spec/spec_tests/data/crud/read/aggregate.yml +21 -0
  913. data/spec/spec_tests/data/crud/read/count-collation.yml +25 -0
  914. data/spec/spec_tests/data/crud/read/count-empty.yml +29 -0
  915. data/spec/spec_tests/data/crud/read/count.yml +74 -0
  916. data/spec/spec_tests/data/crud/read/distinct-collation.yml +17 -0
  917. data/spec/spec_tests/data/crud/read/distinct.yml +32 -0
  918. data/spec/spec_tests/data/crud/read/find-collation.yml +15 -0
  919. data/spec/spec_tests/data/crud/read/find.yml +49 -0
  920. data/spec/spec_tests/data/crud/write/bulkWrite-arrayFilters.yml +45 -0
  921. data/spec/spec_tests/data/crud/write/bulkWrite-collation.yml +101 -0
  922. data/spec/spec_tests/data/crud/write/bulkWrite.yml +405 -0
  923. data/spec/spec_tests/data/crud/write/deleteMany-collation.yml +22 -0
  924. data/spec/spec_tests/data/crud/write/deleteMany.yml +35 -0
  925. data/spec/spec_tests/data/crud/write/deleteOne-collation.yml +22 -0
  926. data/spec/spec_tests/data/crud/write/deleteOne.yml +48 -0
  927. data/spec/spec_tests/data/crud/write/findOneAndDelete-collation.yml +23 -0
  928. data/spec/spec_tests/data/crud/write/findOneAndDelete.yml +53 -0
  929. data/spec/spec_tests/data/crud/write/findOneAndReplace-collation.yml +24 -0
  930. data/spec/spec_tests/data/crud/write/findOneAndReplace-upsert.yml +91 -0
  931. data/spec/spec_tests/data/crud/write/findOneAndReplace-upsert_pre_2.6.yml +88 -0
  932. data/spec/spec_tests/data/crud/write/findOneAndReplace.yml +113 -0
  933. data/spec/spec_tests/data/crud/write/findOneAndUpdate-arrayFilters.yml +69 -0
  934. data/spec/spec_tests/data/crud/write/findOneAndUpdate-collation.yml +27 -0
  935. data/spec/spec_tests/data/crud/write/findOneAndUpdate.yml +163 -0
  936. data/spec/spec_tests/data/crud/write/insertMany.yml +81 -0
  937. data/spec/spec_tests/data/crud/write/insertOne.yml +18 -0
  938. data/spec/spec_tests/data/crud/write/replaceOne-collation.yml +24 -0
  939. data/spec/spec_tests/data/crud/write/replaceOne-pre_2.6.yml +98 -0
  940. data/spec/spec_tests/data/crud/write/replaceOne-upsert.yml +48 -0
  941. data/spec/spec_tests/data/crud/write/replaceOne.yml +102 -0
  942. data/spec/spec_tests/data/crud/write/updateMany-arrayFilters.yml +66 -0
  943. data/spec/spec_tests/data/crud/write/updateMany-collation.yml +28 -0
  944. data/spec/spec_tests/data/crud/write/updateMany-pre_2.6.yml +86 -0
  945. data/spec/spec_tests/data/crud/write/updateMany.yml +87 -0
  946. data/spec/spec_tests/data/crud/write/updateOne-arrayFilters.yml +114 -0
  947. data/spec/spec_tests/data/crud/write/updateOne-collation.yml +25 -0
  948. data/spec/spec_tests/data/crud/write/updateOne-pre_2.6.yml +83 -0
  949. data/spec/spec_tests/data/crud/write/updateOne.yml +84 -0
  950. data/spec/spec_tests/data/crud_unified/estimatedDocumentCount.yml +267 -0
  951. data/spec/spec_tests/data/crud_unified/updateWithPipelines.yml +305 -0
  952. data/spec/spec_tests/data/crud_v2/aggregate-merge.yml +103 -0
  953. data/spec/spec_tests/data/crud_v2/aggregate-out-readConcern.yml +111 -0
  954. data/spec/spec_tests/data/crud_v2/bulkWrite-arrayFilters.yml +103 -0
  955. data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint-clientError.yml +63 -0
  956. data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint-serverError.yml +92 -0
  957. data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint.yml +103 -0
  958. data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint-clientError.yml +90 -0
  959. data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint-serverError.yml +147 -0
  960. data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint.yml +164 -0
  961. data/spec/spec_tests/data/crud_v2/db-aggregate.yml +39 -0
  962. data/spec/spec_tests/data/crud_v2/deleteMany-hint-clientError.yml +43 -0
  963. data/spec/spec_tests/data/crud_v2/deleteMany-hint-serverError.yml +62 -0
  964. data/spec/spec_tests/data/crud_v2/deleteMany-hint.yml +58 -0
  965. data/spec/spec_tests/data/crud_v2/deleteOne-hint-clientError.yml +41 -0
  966. data/spec/spec_tests/data/crud_v2/deleteOne-hint-serverError.yml +60 -0
  967. data/spec/spec_tests/data/crud_v2/deleteOne-hint.yml +57 -0
  968. data/spec/spec_tests/data/crud_v2/find-allowdiskuse-clientError.yml +28 -0
  969. data/spec/spec_tests/data/crud_v2/find-allowdiskuse-serverError.yml +44 -0
  970. data/spec/spec_tests/data/crud_v2/find-allowdiskuse.yml +50 -0
  971. data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint-clientError.yml +45 -0
  972. data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint-serverError.yml +60 -0
  973. data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint.yml +56 -0
  974. data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint-clientError.yml +40 -0
  975. data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint-serverError.yml +59 -0
  976. data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint.yml +55 -0
  977. data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint-clientError.yml +40 -0
  978. data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint-serverError.yml +58 -0
  979. data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint.yml +55 -0
  980. data/spec/spec_tests/data/crud_v2/replaceOne-hint.yml +61 -0
  981. data/spec/spec_tests/data/crud_v2/unacknowledged-bulkWrite-delete-hint-clientError.yml +60 -0
  982. data/spec/spec_tests/data/crud_v2/unacknowledged-bulkWrite-update-hint-clientError.yml +88 -0
  983. data/spec/spec_tests/data/crud_v2/unacknowledged-deleteMany-hint-clientError.yml +40 -0
  984. data/spec/spec_tests/data/crud_v2/unacknowledged-deleteOne-hint-clientError.yml +38 -0
  985. data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndDelete-hint-clientError.yml +42 -0
  986. data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndReplace-hint-clientError.yml +40 -0
  987. data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndUpdate-hint-clientError.yml +40 -0
  988. data/spec/spec_tests/data/crud_v2/unacknowledged-replaceOne-hint-clientError.yml +40 -0
  989. data/spec/spec_tests/data/crud_v2/unacknowledged-updateMany-hint-clientError.yml +43 -0
  990. data/spec/spec_tests/data/crud_v2/unacknowledged-updateOne-hint-clientError.yml +40 -0
  991. data/spec/spec_tests/data/crud_v2/updateMany-hint-clientError.yml +45 -0
  992. data/spec/spec_tests/data/crud_v2/updateMany-hint-serverError.yml +66 -0
  993. data/spec/spec_tests/data/crud_v2/updateMany-hint.yml +65 -0
  994. data/spec/spec_tests/data/crud_v2/updateOne-hint-clientError.yml +43 -0
  995. data/spec/spec_tests/data/crud_v2/updateOne-hint-serverError.yml +62 -0
  996. data/spec/spec_tests/data/crud_v2/updateOne-hint.yml +61 -0
  997. data/spec/spec_tests/data/crud_v2/updateWithPipelines.yml +157 -0
  998. data/spec/spec_tests/data/dns_seedlist_discovery/direct-connection-false.yml +10 -0
  999. data/spec/spec_tests/data/dns_seedlist_discovery/direct-connection-true.yml +5 -0
  1000. data/spec/spec_tests/data/dns_seedlist_discovery/longer-parent-in-return.yml +11 -0
  1001. data/spec/spec_tests/data/dns_seedlist_discovery/misformatted-option.yml +5 -0
  1002. data/spec/spec_tests/data/dns_seedlist_discovery/no-results.yml +5 -0
  1003. data/spec/spec_tests/data/dns_seedlist_discovery/not-enough-parts.yml +5 -0
  1004. data/spec/spec_tests/data/dns_seedlist_discovery/one-result-default-port.yml +10 -0
  1005. data/spec/spec_tests/data/dns_seedlist_discovery/one-txt-record-multiple-strings.yml +10 -0
  1006. data/spec/spec_tests/data/dns_seedlist_discovery/one-txt-record.yml +11 -0
  1007. data/spec/spec_tests/data/dns_seedlist_discovery/parent-part-mismatch1.yml +5 -0
  1008. data/spec/spec_tests/data/dns_seedlist_discovery/parent-part-mismatch2.yml +5 -0
  1009. data/spec/spec_tests/data/dns_seedlist_discovery/parent-part-mismatch3.yml +5 -0
  1010. data/spec/spec_tests/data/dns_seedlist_discovery/parent-part-mismatch4.yml +5 -0
  1011. data/spec/spec_tests/data/dns_seedlist_discovery/parent-part-mismatch5.yml +5 -0
  1012. data/spec/spec_tests/data/dns_seedlist_discovery/returned-parent-too-short.yml +5 -0
  1013. data/spec/spec_tests/data/dns_seedlist_discovery/returned-parent-wrong.yml +5 -0
  1014. data/spec/spec_tests/data/dns_seedlist_discovery/two-results-default-port.yml +11 -0
  1015. data/spec/spec_tests/data/dns_seedlist_discovery/two-results-nonstandard-port.yml +11 -0
  1016. data/spec/spec_tests/data/dns_seedlist_discovery/two-txt-records.yml +5 -0
  1017. data/spec/spec_tests/data/dns_seedlist_discovery/txt-record-not-allowed-option.yml +5 -0
  1018. data/spec/spec_tests/data/dns_seedlist_discovery/txt-record-with-overridden-ssl-option.yml +11 -0
  1019. data/spec/spec_tests/data/dns_seedlist_discovery/txt-record-with-overridden-uri-option.yml +11 -0
  1020. data/spec/spec_tests/data/dns_seedlist_discovery/txt-record-with-unallowed-option.yml +5 -0
  1021. data/spec/spec_tests/data/dns_seedlist_discovery/uri-with-port.yml +5 -0
  1022. data/spec/spec_tests/data/dns_seedlist_discovery/uri-with-two-hosts.yml +5 -0
  1023. data/spec/spec_tests/data/gridfs/delete.yml +123 -0
  1024. data/spec/spec_tests/data/gridfs/download.yml +192 -0
  1025. data/spec/spec_tests/data/gridfs/download_by_name.yml +113 -0
  1026. data/spec/spec_tests/data/gridfs/upload.yml +158 -0
  1027. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/DefaultNoMaxStaleness.yml +26 -0
  1028. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Incompatible.yml +25 -0
  1029. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/LastUpdateTime.yml +33 -0
  1030. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/MaxStalenessTooSmall.yml +15 -0
  1031. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest.yml +33 -0
  1032. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest2.yml +33 -0
  1033. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/NoKnownServers.yml +16 -0
  1034. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred.yml +27 -0
  1035. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred_tags.yml +36 -0
  1036. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Secondary.yml +51 -0
  1037. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred.yml +26 -0
  1038. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred_tags.yml +51 -0
  1039. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/ZeroMaxStaleness.yml +23 -0
  1040. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/DefaultNoMaxStaleness.yml +26 -0
  1041. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Incompatible.yml +25 -0
  1042. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LastUpdateTime.yml +35 -0
  1043. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat.yml +29 -0
  1044. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat2.yml +25 -0
  1045. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessTooSmall.yml +26 -0
  1046. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessWithModePrimary.yml +23 -0
  1047. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest.yml +33 -0
  1048. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest2.yml +33 -0
  1049. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest_tags.yml +36 -0
  1050. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred.yml +27 -0
  1051. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred_incompatible.yml +27 -0
  1052. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred.yml +26 -0
  1053. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags.yml +59 -0
  1054. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags2.yml +43 -0
  1055. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags.yml +59 -0
  1056. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags2.yml +43 -0
  1057. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/ZeroMaxStaleness.yml +23 -0
  1058. data/spec/spec_tests/data/max_staleness/Sharded/Incompatible.yml +25 -0
  1059. data/spec/spec_tests/data/max_staleness/Sharded/SmallMaxStaleness.yml +28 -0
  1060. data/spec/spec_tests/data/max_staleness/Single/Incompatible.yml +18 -0
  1061. data/spec/spec_tests/data/max_staleness/Single/SmallMaxStaleness.yml +20 -0
  1062. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +15 -0
  1063. data/spec/spec_tests/data/read_write_concern/connection-string/read-concern.yml +32 -0
  1064. data/spec/spec_tests/data/read_write_concern/connection-string/write-concern.yml +79 -0
  1065. data/spec/spec_tests/data/read_write_concern/document/read-concern.yml +37 -0
  1066. data/spec/spec_tests/data/read_write_concern/document/write-concern.yml +100 -0
  1067. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-2.6.yml +215 -0
  1068. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-3.2.yml +58 -0
  1069. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-3.4.yml +95 -0
  1070. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-4.2.yml +36 -0
  1071. data/spec/spec_tests/data/retryable_reads/aggregate-merge.yml +39 -0
  1072. data/spec/spec_tests/data/retryable_reads/aggregate-serverErrors.yml +157 -0
  1073. data/spec/spec_tests/data/retryable_reads/aggregate.yml +87 -0
  1074. data/spec/spec_tests/data/retryable_reads/changeStreams-client.watch-serverErrors.yml +150 -0
  1075. data/spec/spec_tests/data/retryable_reads/changeStreams-client.watch.yml +62 -0
  1076. data/spec/spec_tests/data/retryable_reads/changeStreams-db.coll.watch-serverErrors.yml +150 -0
  1077. data/spec/spec_tests/data/retryable_reads/changeStreams-db.coll.watch.yml +66 -0
  1078. data/spec/spec_tests/data/retryable_reads/changeStreams-db.watch-serverErrors.yml +154 -0
  1079. data/spec/spec_tests/data/retryable_reads/changeStreams-db.watch.yml +62 -0
  1080. data/spec/spec_tests/data/retryable_reads/count-serverErrors.yml +150 -0
  1081. data/spec/spec_tests/data/retryable_reads/count.yml +64 -0
  1082. data/spec/spec_tests/data/retryable_reads/countDocuments-serverErrors.yml +150 -0
  1083. data/spec/spec_tests/data/retryable_reads/countDocuments.yml +64 -0
  1084. data/spec/spec_tests/data/retryable_reads/distinct-serverErrors.yml +156 -0
  1085. data/spec/spec_tests/data/retryable_reads/distinct.yml +71 -0
  1086. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-4.9.yml +60 -0
  1087. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-pre4.9.yml +64 -0
  1088. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors-4.9.yml +146 -0
  1089. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors-pre4.9.yml +150 -0
  1090. data/spec/spec_tests/data/retryable_reads/find-serverErrors.yml +160 -0
  1091. data/spec/spec_tests/data/retryable_reads/find.yml +86 -0
  1092. data/spec/spec_tests/data/retryable_reads/findOne-serverErrors.yml +154 -0
  1093. data/spec/spec_tests/data/retryable_reads/findOne.yml +68 -0
  1094. data/spec/spec_tests/data/retryable_reads/gridfs-download-serverErrors.yml +173 -0
  1095. data/spec/spec_tests/data/retryable_reads/gridfs-download.yml +79 -0
  1096. data/spec/spec_tests/data/retryable_reads/gridfs-downloadByName-serverErrors.yml +174 -0
  1097. data/spec/spec_tests/data/retryable_reads/gridfs-downloadByName.yml +79 -0
  1098. data/spec/spec_tests/data/retryable_reads/listCollectionNames-serverErrors.yml +143 -0
  1099. data/spec/spec_tests/data/retryable_reads/listCollectionNames.yml +59 -0
  1100. data/spec/spec_tests/data/retryable_reads/listCollectionObjects-serverErrors.yml +144 -0
  1101. data/spec/spec_tests/data/retryable_reads/listCollectionObjects.yml +59 -0
  1102. data/spec/spec_tests/data/retryable_reads/listCollections-serverErrors.yml +143 -0
  1103. data/spec/spec_tests/data/retryable_reads/listCollections.yml +59 -0
  1104. data/spec/spec_tests/data/retryable_reads/listDatabaseNames-serverErrors.yml +143 -0
  1105. data/spec/spec_tests/data/retryable_reads/listDatabaseNames.yml +59 -0
  1106. data/spec/spec_tests/data/retryable_reads/listDatabaseObjects-serverErrors.yml +144 -0
  1107. data/spec/spec_tests/data/retryable_reads/listDatabaseObjects.yml +59 -0
  1108. data/spec/spec_tests/data/retryable_reads/listDatabases-serverErrors.yml +144 -0
  1109. data/spec/spec_tests/data/retryable_reads/listDatabases.yml +59 -0
  1110. data/spec/spec_tests/data/retryable_reads/listIndexNames-serverErrors.yml +144 -0
  1111. data/spec/spec_tests/data/retryable_reads/listIndexNames.yml +60 -0
  1112. data/spec/spec_tests/data/retryable_reads/listIndexes-serverErrors.yml +145 -0
  1113. data/spec/spec_tests/data/retryable_reads/listIndexes.yml +60 -0
  1114. data/spec/spec_tests/data/retryable_reads/mapReduce.yml +60 -0
  1115. data/spec/spec_tests/data/retryable_writes/bulkWrite-errorLabels.yml +77 -0
  1116. data/spec/spec_tests/data/retryable_writes/bulkWrite-serverErrors.yml +130 -0
  1117. data/spec/spec_tests/data/retryable_writes/bulkWrite.yml +402 -0
  1118. data/spec/spec_tests/data/retryable_writes/deleteMany.yml +22 -0
  1119. data/spec/spec_tests/data/retryable_writes/deleteOne-errorLabels.yml +48 -0
  1120. data/spec/spec_tests/data/retryable_writes/deleteOne-serverErrors.yml +73 -0
  1121. data/spec/spec_tests/data/retryable_writes/deleteOne.yml +57 -0
  1122. data/spec/spec_tests/data/retryable_writes/findOneAndDelete-errorLabels.yml +49 -0
  1123. data/spec/spec_tests/data/retryable_writes/findOneAndDelete-serverErrors.yml +74 -0
  1124. data/spec/spec_tests/data/retryable_writes/findOneAndDelete.yml +58 -0
  1125. data/spec/spec_tests/data/retryable_writes/findOneAndReplace-errorLabels.yml +52 -0
  1126. data/spec/spec_tests/data/retryable_writes/findOneAndReplace-serverErrors.yml +80 -0
  1127. data/spec/spec_tests/data/retryable_writes/findOneAndReplace.yml +63 -0
  1128. data/spec/spec_tests/data/retryable_writes/findOneAndUpdate-errorLabels.yml +52 -0
  1129. data/spec/spec_tests/data/retryable_writes/findOneAndUpdate-serverErrors.yml +79 -0
  1130. data/spec/spec_tests/data/retryable_writes/findOneAndUpdate.yml +62 -0
  1131. data/spec/spec_tests/data/retryable_writes/insertMany-errorLabels.yml +54 -0
  1132. data/spec/spec_tests/data/retryable_writes/insertMany-serverErrors.yml +84 -0
  1133. data/spec/spec_tests/data/retryable_writes/insertMany.yml +74 -0
  1134. data/spec/spec_tests/data/retryable_writes/insertOne-errorLabels.yml +44 -0
  1135. data/spec/spec_tests/data/retryable_writes/insertOne-serverErrors.yml +527 -0
  1136. data/spec/spec_tests/data/retryable_writes/insertOne.yml +61 -0
  1137. data/spec/spec_tests/data/retryable_writes/replaceOne-errorLabels.yml +53 -0
  1138. data/spec/spec_tests/data/retryable_writes/replaceOne-serverErrors.yml +82 -0
  1139. data/spec/spec_tests/data/retryable_writes/replaceOne.yml +66 -0
  1140. data/spec/spec_tests/data/retryable_writes/updateMany.yml +27 -0
  1141. data/spec/spec_tests/data/retryable_writes/updateOne-errorLabels.yml +53 -0
  1142. data/spec/spec_tests/data/retryable_writes/updateOne-serverErrors.yml +82 -0
  1143. data/spec/spec_tests/data/retryable_writes/updateOne.yml +129 -0
  1144. data/spec/spec_tests/data/sdam/errors/error_handling_handshake.yml +55 -0
  1145. data/spec/spec_tests/data/sdam/errors/non-stale-network-error.yml +47 -0
  1146. data/spec/spec_tests/data/sdam/errors/non-stale-network-timeout-error.yml +38 -0
  1147. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-InterruptedAtShutdown.yml +61 -0
  1148. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-InterruptedDueToReplStateChange.yml +61 -0
  1149. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-LegacyNotPrimary.yml +61 -0
  1150. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-NotPrimaryNoSecondaryOk.yml +61 -0
  1151. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-NotPrimaryOrSecondary.yml +61 -0
  1152. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-NotWritablePrimary.yml +61 -0
  1153. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-PrimarySteppedDown.yml +61 -0
  1154. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-ShutdownInProgress.yml +61 -0
  1155. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-InterruptedAtShutdown.yml +52 -0
  1156. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-InterruptedDueToReplStateChange.yml +52 -0
  1157. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-LegacyNotPrimary.yml +52 -0
  1158. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-NotPrimaryNoSecondaryOk.yml +52 -0
  1159. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-NotPrimaryOrSecondary.yml +52 -0
  1160. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-NotWritablePrimary.yml +52 -0
  1161. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-PrimarySteppedDown.yml +52 -0
  1162. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-ShutdownInProgress.yml +52 -0
  1163. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-InterruptedAtShutdown.yml +61 -0
  1164. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-InterruptedDueToReplStateChange.yml +61 -0
  1165. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-LegacyNotPrimary.yml +61 -0
  1166. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-NotPrimaryNoSecondaryOk.yml +61 -0
  1167. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-NotPrimaryOrSecondary.yml +61 -0
  1168. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-NotWritablePrimary.yml +61 -0
  1169. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-PrimarySteppedDown.yml +61 -0
  1170. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-ShutdownInProgress.yml +61 -0
  1171. data/spec/spec_tests/data/sdam/errors/post-42-InterruptedAtShutdown.yml +47 -0
  1172. data/spec/spec_tests/data/sdam/errors/post-42-InterruptedDueToReplStateChange.yml +47 -0
  1173. data/spec/spec_tests/data/sdam/errors/post-42-LegacyNotPrimary.yml +47 -0
  1174. data/spec/spec_tests/data/sdam/errors/post-42-NotPrimaryNoSecondaryOk.yml +47 -0
  1175. data/spec/spec_tests/data/sdam/errors/post-42-NotPrimaryOrSecondary.yml +47 -0
  1176. data/spec/spec_tests/data/sdam/errors/post-42-NotWritablePrimary.yml +47 -0
  1177. data/spec/spec_tests/data/sdam/errors/post-42-PrimarySteppedDown.yml +47 -0
  1178. data/spec/spec_tests/data/sdam/errors/post-42-ShutdownInProgress.yml +47 -0
  1179. data/spec/spec_tests/data/sdam/errors/pre-42-InterruptedAtShutdown.yml +47 -0
  1180. data/spec/spec_tests/data/sdam/errors/pre-42-InterruptedDueToReplStateChange.yml +47 -0
  1181. data/spec/spec_tests/data/sdam/errors/pre-42-LegacyNotPrimary.yml +47 -0
  1182. data/spec/spec_tests/data/sdam/errors/pre-42-NotPrimaryNoSecondaryOk.yml +47 -0
  1183. data/spec/spec_tests/data/sdam/errors/pre-42-NotPrimaryOrSecondary.yml +47 -0
  1184. data/spec/spec_tests/data/sdam/errors/pre-42-NotWritablePrimary.yml +47 -0
  1185. data/spec/spec_tests/data/sdam/errors/pre-42-PrimarySteppedDown.yml +47 -0
  1186. data/spec/spec_tests/data/sdam/errors/pre-42-ShutdownInProgress.yml +47 -0
  1187. data/spec/spec_tests/data/sdam/errors/prefer-error-code.yml +54 -0
  1188. data/spec/spec_tests/data/sdam/errors/stale-generation-InterruptedAtShutdown.yml +91 -0
  1189. data/spec/spec_tests/data/sdam/errors/stale-generation-InterruptedDueToReplStateChange.yml +91 -0
  1190. data/spec/spec_tests/data/sdam/errors/stale-generation-NotPrimaryNoSecondaryOk.yml +91 -0
  1191. data/spec/spec_tests/data/sdam/errors/stale-generation-NotPrimaryOrSecondary.yml +91 -0
  1192. data/spec/spec_tests/data/sdam/errors/stale-generation-NotWritablePrimary.yml +91 -0
  1193. data/spec/spec_tests/data/sdam/errors/stale-generation-PrimarySteppedDown.yml +91 -0
  1194. data/spec/spec_tests/data/sdam/errors/stale-generation-ShutdownInProgress.yml +91 -0
  1195. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-InterruptedAtShutdown.yml +91 -0
  1196. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-InterruptedDueToReplStateChange.yml +91 -0
  1197. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-LegacyNotPrimary.yml +91 -0
  1198. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-NotPrimaryNoSecondaryOk.yml +91 -0
  1199. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-NotPrimaryOrSecondary.yml +91 -0
  1200. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-NotWritablePrimary.yml +91 -0
  1201. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-PrimarySteppedDown.yml +91 -0
  1202. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-ShutdownInProgress.yml +91 -0
  1203. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-network.yml +82 -0
  1204. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-timeout.yml +82 -0
  1205. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-InterruptedAtShutdown.yml +91 -0
  1206. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-InterruptedDueToReplStateChange.yml +91 -0
  1207. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-LegacyNotPrimary.yml +91 -0
  1208. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-NotPrimaryNoSecondaryOk.yml +91 -0
  1209. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-NotPrimaryOrSecondary.yml +91 -0
  1210. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-NotWritablePrimary.yml +91 -0
  1211. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-PrimarySteppedDown.yml +91 -0
  1212. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-ShutdownInProgress.yml +91 -0
  1213. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-network.yml +82 -0
  1214. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-timeout.yml +82 -0
  1215. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-InterruptedAtShutdown.yml +65 -0
  1216. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-InterruptedDueToReplStateChange.yml +65 -0
  1217. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-LegacyNotPrimary.yml +65 -0
  1218. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-NotPrimaryNoSecondaryOk.yml +65 -0
  1219. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-NotPrimaryOrSecondary.yml +65 -0
  1220. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-NotWritablePrimary.yml +65 -0
  1221. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-PrimarySteppedDown.yml +65 -0
  1222. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-ShutdownInProgress.yml +65 -0
  1223. data/spec/spec_tests/data/sdam/errors/write_errors_ignored.yml +42 -0
  1224. data/spec/spec_tests/data/sdam/rs/compatible.yml +45 -0
  1225. data/spec/spec_tests/data/sdam/rs/compatible_unknown.yml +34 -0
  1226. data/spec/spec_tests/data/sdam/rs/discover_arbiters.yml +44 -0
  1227. data/spec/spec_tests/data/sdam/rs/discover_arbiters_replicaset.yml +44 -0
  1228. data/spec/spec_tests/data/sdam/rs/discover_ghost.yml +36 -0
  1229. data/spec/spec_tests/data/sdam/rs/discover_ghost_replicaset.yml +42 -0
  1230. data/spec/spec_tests/data/sdam/rs/discover_hidden.yml +51 -0
  1231. data/spec/spec_tests/data/sdam/rs/discover_hidden_replicaset.yml +51 -0
  1232. data/spec/spec_tests/data/sdam/rs/discover_passives.yml +83 -0
  1233. data/spec/spec_tests/data/sdam/rs/discover_passives_replicaset.yml +83 -0
  1234. data/spec/spec_tests/data/sdam/rs/discover_primary.yml +43 -0
  1235. data/spec/spec_tests/data/sdam/rs/discover_primary_replicaset.yml +43 -0
  1236. data/spec/spec_tests/data/sdam/rs/discover_rsother.yml +50 -0
  1237. data/spec/spec_tests/data/sdam/rs/discover_rsother_replicaset.yml +68 -0
  1238. data/spec/spec_tests/data/sdam/rs/discover_secondary.yml +44 -0
  1239. data/spec/spec_tests/data/sdam/rs/discover_secondary_replicaset.yml +44 -0
  1240. data/spec/spec_tests/data/sdam/rs/discovery.yml +207 -0
  1241. data/spec/spec_tests/data/sdam/rs/equal_electionids.yml +57 -0
  1242. data/spec/spec_tests/data/sdam/rs/hosts_differ_from_seeds.yml +37 -0
  1243. data/spec/spec_tests/data/sdam/rs/incompatible_arbiter.yml +36 -0
  1244. data/spec/spec_tests/data/sdam/rs/incompatible_ghost.yml +34 -0
  1245. data/spec/spec_tests/data/sdam/rs/incompatible_other.yml +36 -0
  1246. data/spec/spec_tests/data/sdam/rs/ls_timeout.yml +249 -0
  1247. data/spec/spec_tests/data/sdam/rs/member_reconfig.yml +74 -0
  1248. data/spec/spec_tests/data/sdam/rs/member_standalone.yml +66 -0
  1249. data/spec/spec_tests/data/sdam/rs/new_primary.yml +80 -0
  1250. data/spec/spec_tests/data/sdam/rs/new_primary_new_electionid.yml +119 -0
  1251. data/spec/spec_tests/data/sdam/rs/new_primary_new_setversion.yml +119 -0
  1252. data/spec/spec_tests/data/sdam/rs/new_primary_wrong_set_name.yml +77 -0
  1253. data/spec/spec_tests/data/sdam/rs/non_rs_member.yml +33 -0
  1254. data/spec/spec_tests/data/sdam/rs/normalize_case.yml +52 -0
  1255. data/spec/spec_tests/data/sdam/rs/normalize_case_me.yml +102 -0
  1256. data/spec/spec_tests/data/sdam/rs/null_election_id.yml +175 -0
  1257. data/spec/spec_tests/data/sdam/rs/primary_becomes_ghost.yml +65 -0
  1258. data/spec/spec_tests/data/sdam/rs/primary_becomes_mongos.yml +58 -0
  1259. data/spec/spec_tests/data/sdam/rs/primary_becomes_standalone.yml +55 -0
  1260. data/spec/spec_tests/data/sdam/rs/primary_changes_set_name.yml +63 -0
  1261. data/spec/spec_tests/data/sdam/rs/primary_disconnect.yml +59 -0
  1262. data/spec/spec_tests/data/sdam/rs/primary_disconnect_electionid.yml +189 -0
  1263. data/spec/spec_tests/data/sdam/rs/primary_disconnect_setversion.yml +189 -0
  1264. data/spec/spec_tests/data/sdam/rs/primary_hint_from_secondary_with_mismatched_me.yml +64 -0
  1265. data/spec/spec_tests/data/sdam/rs/primary_mismatched_me.yml +27 -0
  1266. data/spec/spec_tests/data/sdam/rs/primary_mismatched_me_not_removed.yml +75 -0
  1267. data/spec/spec_tests/data/sdam/rs/primary_reports_new_member.yml +175 -0
  1268. data/spec/spec_tests/data/sdam/rs/primary_to_no_primary_mismatched_me.yml +81 -0
  1269. data/spec/spec_tests/data/sdam/rs/primary_wrong_set_name.yml +30 -0
  1270. data/spec/spec_tests/data/sdam/rs/repeated.yml +105 -0
  1271. data/spec/spec_tests/data/sdam/rs/replicaset_rsnp.yml +21 -0
  1272. data/spec/spec_tests/data/sdam/rs/response_from_removed.yml +69 -0
  1273. data/spec/spec_tests/data/sdam/rs/ruby_primary_address_change.yml +31 -0
  1274. data/spec/spec_tests/data/sdam/rs/ruby_secondary_wrong_set_name_with_primary_second.yml +73 -0
  1275. data/spec/spec_tests/data/sdam/rs/sec_not_auth.yml +55 -0
  1276. data/spec/spec_tests/data/sdam/rs/secondary_ignore_ok_0.yml +87 -0
  1277. data/spec/spec_tests/data/sdam/rs/secondary_mismatched_me.yml +28 -0
  1278. data/spec/spec_tests/data/sdam/rs/secondary_wrong_set_name.yml +31 -0
  1279. data/spec/spec_tests/data/sdam/rs/secondary_wrong_set_name_with_primary.yml +75 -0
  1280. data/spec/spec_tests/data/sdam/rs/setversion_without_electionid.yml +79 -0
  1281. data/spec/spec_tests/data/sdam/rs/stepdown_change_set_name.yml +65 -0
  1282. data/spec/spec_tests/data/sdam/rs/too_new.yml +45 -0
  1283. data/spec/spec_tests/data/sdam/rs/too_old.yml +41 -0
  1284. data/spec/spec_tests/data/sdam/rs/topology_version_equal.yml +68 -0
  1285. data/spec/spec_tests/data/sdam/rs/topology_version_greater.yml +194 -0
  1286. data/spec/spec_tests/data/sdam/rs/topology_version_less.yml +64 -0
  1287. data/spec/spec_tests/data/sdam/rs/unexpected_mongos.yml +29 -0
  1288. data/spec/spec_tests/data/sdam/rs/use_setversion_without_electionid.yml +117 -0
  1289. data/spec/spec_tests/data/sdam/rs/wrong_set_name.yml +38 -0
  1290. data/spec/spec_tests/data/sdam/sharded/compatible.yml +40 -0
  1291. data/spec/spec_tests/data/sdam/sharded/discover_single_mongos.yml +24 -0
  1292. data/spec/spec_tests/data/sdam/sharded/ls_timeout_mongos.yml +101 -0
  1293. data/spec/spec_tests/data/sdam/sharded/mongos_disconnect.yml +113 -0
  1294. data/spec/spec_tests/data/sdam/sharded/multiple_mongoses.yml +52 -0
  1295. data/spec/spec_tests/data/sdam/sharded/non_mongos_removed.yml +47 -0
  1296. data/spec/spec_tests/data/sdam/sharded/normalize_uri_case.yml +32 -0
  1297. data/spec/spec_tests/data/sdam/sharded/ruby_primary_different_address.yml +21 -0
  1298. data/spec/spec_tests/data/sdam/sharded/ruby_primary_mismatched_me.yml +22 -0
  1299. data/spec/spec_tests/data/sdam/sharded/too_new.yml +38 -0
  1300. data/spec/spec_tests/data/sdam/sharded/too_old.yml +38 -0
  1301. data/spec/spec_tests/data/sdam/single/compatible.yml +27 -0
  1302. data/spec/spec_tests/data/sdam/single/direct_connection_external_ip.yml +37 -0
  1303. data/spec/spec_tests/data/sdam/single/direct_connection_mongos.yml +36 -0
  1304. data/spec/spec_tests/data/sdam/single/direct_connection_replicaset.yml +23 -0
  1305. data/spec/spec_tests/data/sdam/single/direct_connection_rsarbiter.yml +38 -0
  1306. data/spec/spec_tests/data/sdam/single/direct_connection_rsprimary.yml +37 -0
  1307. data/spec/spec_tests/data/sdam/single/direct_connection_rssecondary.yml +38 -0
  1308. data/spec/spec_tests/data/sdam/single/direct_connection_standalone.yml +35 -0
  1309. data/spec/spec_tests/data/sdam/single/direct_connection_unavailable_seed.yml +28 -0
  1310. data/spec/spec_tests/data/sdam/single/direct_connection_wrong_set_name.yml +40 -0
  1311. data/spec/spec_tests/data/sdam/single/discover_standalone.yml +35 -0
  1312. data/spec/spec_tests/data/sdam/single/discover_unavailable_seed.yml +28 -0
  1313. data/spec/spec_tests/data/sdam/single/ls_timeout_standalone.yml +36 -0
  1314. data/spec/spec_tests/data/sdam/single/not_ok_response.yml +44 -0
  1315. data/spec/spec_tests/data/sdam/single/ruby_primary_different_address.yml +24 -0
  1316. data/spec/spec_tests/data/sdam/single/ruby_primary_mismatched_me.yml +25 -0
  1317. data/spec/spec_tests/data/sdam/single/standalone_removed.yml +35 -0
  1318. data/spec/spec_tests/data/sdam/single/standalone_using_legacy_hello.yml +34 -0
  1319. data/spec/spec_tests/data/sdam/single/too_new.yml +27 -0
  1320. data/spec/spec_tests/data/sdam/single/too_old.yml +25 -0
  1321. data/spec/spec_tests/data/sdam/single/too_old_then_upgraded.yml +48 -0
  1322. data/spec/spec_tests/data/sdam_integration/cancel-server-check.yml +96 -0
  1323. data/spec/spec_tests/data/sdam_integration/connectTimeoutMS.yml +88 -0
  1324. data/spec/spec_tests/data/sdam_integration/find-network-error.yml +83 -0
  1325. data/spec/spec_tests/data/sdam_integration/find-shutdown-error.yml +116 -0
  1326. data/spec/spec_tests/data/sdam_integration/hello-command-error.yml +158 -0
  1327. data/spec/spec_tests/data/sdam_integration/hello-network-error.yml +156 -0
  1328. data/spec/spec_tests/data/sdam_integration/hello-timeout.yml +223 -0
  1329. data/spec/spec_tests/data/sdam_integration/insert-network-error.yml +86 -0
  1330. data/spec/spec_tests/data/sdam_integration/insert-shutdown-error.yml +115 -0
  1331. data/spec/spec_tests/data/sdam_integration/rediscover-quickly-after-step-down.yml +98 -0
  1332. data/spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml +70 -0
  1333. data/spec/spec_tests/data/sdam_monitoring/replica_set_other_chain.yml +222 -0
  1334. data/spec/spec_tests/data/sdam_monitoring/replica_set_other_change.yml +225 -0
  1335. data/spec/spec_tests/data/sdam_monitoring/replica_set_primary_address_change.yml +251 -0
  1336. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_me_mismatch.yml +111 -0
  1337. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_no_primary.yml +113 -0
  1338. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary.yml +112 -0
  1339. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_and_secondary.yml +198 -0
  1340. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_removal.yml +175 -0
  1341. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_removal.yml +111 -0
  1342. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_second_seed_removal.yml +106 -0
  1343. data/spec/spec_tests/data/sdam_monitoring/required_replica_set.yml +108 -0
  1344. data/spec/spec_tests/data/sdam_monitoring/standalone.yml +70 -0
  1345. data/spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml +86 -0
  1346. data/spec/spec_tests/data/sdam_monitoring/standalone_suppress_equal_description_changes.yml +73 -0
  1347. data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +90 -0
  1348. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest.yml +25 -0
  1349. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest_multiple.yml +26 -0
  1350. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest_non_matching.yml +20 -0
  1351. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PossiblePrimary.yml +15 -0
  1352. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PossiblePrimaryNearest.yml +15 -0
  1353. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Primary.yml +18 -0
  1354. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PrimaryPreferred.yml +25 -0
  1355. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PrimaryPreferred_non_matching.yml +20 -0
  1356. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary.yml +25 -0
  1357. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/SecondaryPreferred.yml +25 -0
  1358. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/SecondaryPreferred_non_matching.yml +20 -0
  1359. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary_multi_tags.yml +31 -0
  1360. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary_multi_tags2.yml +31 -0
  1361. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary_non_matching.yml +20 -0
  1362. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Nearest.yml +32 -0
  1363. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Nearest_multiple.yml +33 -0
  1364. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Nearest_non_matching.yml +25 -0
  1365. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Primary.yml +26 -0
  1366. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/PrimaryPreferred.yml +28 -0
  1367. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/PrimaryPreferred_non_matching.yml +28 -0
  1368. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Secondary.yml +30 -0
  1369. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred.yml +30 -0
  1370. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred_non_matching.yml +28 -0
  1371. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred_tags.yml +28 -0
  1372. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Secondary_non_matching.yml +25 -0
  1373. data/spec/spec_tests/data/server_selection/Sharded/read/Nearest.yml +21 -0
  1374. data/spec/spec_tests/data/server_selection/Sharded/read/Primary.yml +19 -0
  1375. data/spec/spec_tests/data/server_selection/Sharded/read/PrimaryPreferred.yml +21 -0
  1376. data/spec/spec_tests/data/server_selection/Sharded/read/Secondary.yml +21 -0
  1377. data/spec/spec_tests/data/server_selection/Sharded/read/SecondaryPreferred.yml +21 -0
  1378. data/spec/spec_tests/data/server_selection/Single/read/SecondaryPreferred.yml +18 -0
  1379. data/spec/spec_tests/data/server_selection/Unknown/read/SecondaryPreferred.yml +10 -0
  1380. data/spec/spec_tests/data/server_selection_rtt/first_value.yml +4 -0
  1381. data/spec/spec_tests/data/server_selection_rtt/first_value_zero.yml +4 -0
  1382. data/spec/spec_tests/data/server_selection_rtt/value_test_1.yml +4 -0
  1383. data/spec/spec_tests/data/server_selection_rtt/value_test_2.yml +4 -0
  1384. data/spec/spec_tests/data/server_selection_rtt/value_test_3.yml +4 -0
  1385. data/spec/spec_tests/data/server_selection_rtt/value_test_4.yml +4 -0
  1386. data/spec/spec_tests/data/server_selection_rtt/value_test_5.yml +4 -0
  1387. data/spec/spec_tests/data/transactions/abort.yml +413 -0
  1388. data/spec/spec_tests/data/transactions/bulk.yml +267 -0
  1389. data/spec/spec_tests/data/transactions/causal-consistency.yml +175 -0
  1390. data/spec/spec_tests/data/transactions/commit.yml +603 -0
  1391. data/spec/spec_tests/data/transactions/count.yml +67 -0
  1392. data/spec/spec_tests/data/transactions/create-collection.yml +131 -0
  1393. data/spec/spec_tests/data/transactions/create-index.yml +152 -0
  1394. data/spec/spec_tests/data/transactions/delete.yml +192 -0
  1395. data/spec/spec_tests/data/transactions/error-labels.yml +1030 -0
  1396. data/spec/spec_tests/data/transactions/errors-client.yml +56 -0
  1397. data/spec/spec_tests/data/transactions/errors.yml +133 -0
  1398. data/spec/spec_tests/data/transactions/findOneAndDelete.yml +134 -0
  1399. data/spec/spec_tests/data/transactions/findOneAndReplace.yml +148 -0
  1400. data/spec/spec_tests/data/transactions/findOneAndUpdate.yml +236 -0
  1401. data/spec/spec_tests/data/transactions/insert.yml +390 -0
  1402. data/spec/spec_tests/data/transactions/isolation.yml +133 -0
  1403. data/spec/spec_tests/data/transactions/mongos-pin-auto.yml +1674 -0
  1404. data/spec/spec_tests/data/transactions/mongos-recovery-token.yml +350 -0
  1405. data/spec/spec_tests/data/transactions/pin-mongos.yml +559 -0
  1406. data/spec/spec_tests/data/transactions/read-concern.yml +623 -0
  1407. data/spec/spec_tests/data/transactions/read-pref.yml +348 -0
  1408. data/spec/spec_tests/data/transactions/reads.yml +261 -0
  1409. data/spec/spec_tests/data/transactions/retryable-abort-errorLabels.yml +124 -0
  1410. data/spec/spec_tests/data/transactions/retryable-abort.yml +1315 -0
  1411. data/spec/spec_tests/data/transactions/retryable-commit-errorLabels.yml +132 -0
  1412. data/spec/spec_tests/data/transactions/retryable-commit.yml +1460 -0
  1413. data/spec/spec_tests/data/transactions/retryable-writes.yml +216 -0
  1414. data/spec/spec_tests/data/transactions/run-command.yml +197 -0
  1415. data/spec/spec_tests/data/transactions/transaction-options-repl.yml +117 -0
  1416. data/spec/spec_tests/data/transactions/transaction-options.yml +781 -0
  1417. data/spec/spec_tests/data/transactions/update.yml +246 -0
  1418. data/spec/spec_tests/data/transactions/write-concern.yml +554 -0
  1419. data/spec/spec_tests/data/transactions_api/callback-aborts.yml +170 -0
  1420. data/spec/spec_tests/data/transactions_api/callback-commits.yml +204 -0
  1421. data/spec/spec_tests/data/transactions_api/callback-retry.yml +215 -0
  1422. data/spec/spec_tests/data/transactions_api/commit-retry.yml +324 -0
  1423. data/spec/spec_tests/data/transactions_api/commit-transienttransactionerror-4.2.yml +139 -0
  1424. data/spec/spec_tests/data/transactions_api/commit-transienttransactionerror.yml +175 -0
  1425. data/spec/spec_tests/data/transactions_api/commit-writeconcernerror.yml +216 -0
  1426. data/spec/spec_tests/data/transactions_api/commit.yml +193 -0
  1427. data/spec/spec_tests/data/transactions_api/transaction-options.yml +274 -0
  1428. data/spec/spec_tests/data/transactions_unified/mongos-unpin.yml +172 -0
  1429. data/spec/spec_tests/data/unified/valid-fail/operation-failure.yml +31 -0
  1430. data/spec/spec_tests/data/unified/valid-pass/poc-change-streams.yml +220 -0
  1431. data/spec/spec_tests/data/unified/valid-pass/poc-command-monitoring.yml +102 -0
  1432. data/spec/spec_tests/data/unified/valid-pass/poc-crud.yml +184 -0
  1433. data/spec/spec_tests/data/unified/valid-pass/poc-gridfs.yml +155 -0
  1434. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-reads.yml +193 -0
  1435. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-writes.yml +210 -0
  1436. data/spec/spec_tests/data/unified/valid-pass/poc-sessions.yml +215 -0
  1437. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-convenient-api.yml +235 -0
  1438. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-mongos-pin-auto.yml +169 -0
  1439. data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +170 -0
  1440. data/spec/spec_tests/data/uri_options/auth-options.yml +49 -0
  1441. data/spec/spec_tests/data/uri_options/compression-options.yml +51 -0
  1442. data/spec/spec_tests/data/uri_options/concern-options.yml +55 -0
  1443. data/spec/spec_tests/data/uri_options/connection-options.yml +149 -0
  1444. data/spec/spec_tests/data/uri_options/connection-pool-options.yml +26 -0
  1445. data/spec/spec_tests/data/uri_options/read-preference-options.yml +66 -0
  1446. data/spec/spec_tests/data/uri_options/ruby-auth-options.yml +12 -0
  1447. data/spec/spec_tests/data/uri_options/ruby-connection-options.yml +58 -0
  1448. data/spec/spec_tests/data/uri_options/tls-options.yml +364 -0
  1449. data/spec/spec_tests/data/versioned_api/crud-api-version-1-strict.yml +417 -0
  1450. data/spec/spec_tests/data/versioned_api/crud-api-version-1.yml +411 -0
  1451. data/spec/spec_tests/data/versioned_api/runcommand-helper-no-api-version-declared.yml +75 -0
  1452. data/spec/spec_tests/data/versioned_api/test-commands-deprecation-errors.yml +47 -0
  1453. data/spec/spec_tests/data/versioned_api/test-commands-strict-mode.yml +46 -0
  1454. data/spec/spec_tests/data/versioned_api/transaction-handling.yml +128 -0
  1455. data/spec/spec_tests/dns_seedlist_discovery_spec.rb +79 -0
  1456. data/spec/spec_tests/gridfs_spec.rb +55 -0
  1457. data/spec/spec_tests/max_staleness_spec.rb +12 -0
  1458. data/spec/spec_tests/read_write_concern_connection_string_spec.rb +13 -0
  1459. data/spec/spec_tests/read_write_concern_document_spec.rb +77 -0
  1460. data/spec/spec_tests/read_write_concern_operaton_spec.rb +13 -0
  1461. data/spec/spec_tests/retryable_reads_spec.rb +50 -0
  1462. data/spec/spec_tests/retryable_writes_spec.rb +22 -0
  1463. data/spec/spec_tests/sdam_integration_spec.rb +16 -0
  1464. data/spec/spec_tests/sdam_monitoring_spec.rb +96 -0
  1465. data/spec/spec_tests/sdam_spec.rb +242 -0
  1466. data/spec/spec_tests/server_selection_rtt_spec.rb +33 -0
  1467. data/spec/spec_tests/server_selection_spec.rb +12 -0
  1468. data/spec/spec_tests/transactions_api_spec.rb +13 -0
  1469. data/spec/spec_tests/transactions_spec.rb +13 -0
  1470. data/spec/spec_tests/transactions_unified_spec.rb +13 -0
  1471. data/spec/spec_tests/unified_spec.rb +18 -0
  1472. data/spec/spec_tests/uri_options_spec.rb +93 -0
  1473. data/spec/spec_tests/versioned_api_spec.rb +13 -0
  1474. data/spec/stress/cleanup_spec.rb +61 -0
  1475. data/spec/stress/connection_pool_stress_spec.rb +204 -0
  1476. data/spec/stress/connection_pool_timing_spec.rb +184 -0
  1477. data/spec/stress/fork_reconnect_stress_spec.rb +112 -0
  1478. data/spec/stress/push_monitor_close_spec.rb +44 -0
  1479. data/spec/support/authorization.rb +161 -0
  1480. data/spec/support/aws_utils/base.rb +137 -0
  1481. data/spec/support/aws_utils/inspector.rb +227 -0
  1482. data/spec/support/aws_utils/orchestrator.rb +373 -0
  1483. data/spec/support/aws_utils/provisioner.rb +363 -0
  1484. data/spec/support/aws_utils.rb +65 -0
  1485. data/spec/support/background_thread_registry.rb +70 -0
  1486. data/spec/support/certificates/README.md +106 -0
  1487. data/spec/support/certificates/atlas-ocsp-ca.crt +118 -0
  1488. data/spec/support/certificates/atlas-ocsp.crt +152 -0
  1489. data/spec/support/certificates/ca.crt +76 -0
  1490. data/spec/support/certificates/client-encrypted.key +30 -0
  1491. data/spec/support/certificates/client-int.crt +78 -0
  1492. data/spec/support/certificates/client-second-level-bundle.pem +179 -0
  1493. data/spec/support/certificates/client-second-level.crt +74 -0
  1494. data/spec/support/certificates/client-second-level.key +27 -0
  1495. data/spec/support/certificates/client-second-level.pem +101 -0
  1496. data/spec/support/certificates/client-x509.crt +78 -0
  1497. data/spec/support/certificates/client-x509.key +27 -0
  1498. data/spec/support/certificates/client-x509.pem +105 -0
  1499. data/spec/support/certificates/client.crt +74 -0
  1500. data/spec/support/certificates/client.key +27 -0
  1501. data/spec/support/certificates/client.pem +101 -0
  1502. data/spec/support/certificates/crl.pem +12 -0
  1503. data/spec/support/certificates/crl_client_revoked.pem +13 -0
  1504. data/spec/support/certificates/multi-ca.crt +152 -0
  1505. data/spec/support/certificates/python-ca.crt +76 -0
  1506. data/spec/support/certificates/server-int.crt +78 -0
  1507. data/spec/support/certificates/server-second-level-bundle.pem +179 -0
  1508. data/spec/support/certificates/server-second-level.crt +74 -0
  1509. data/spec/support/certificates/server-second-level.key +27 -0
  1510. data/spec/support/certificates/server-second-level.pem +101 -0
  1511. data/spec/support/certificates/server.pem +101 -0
  1512. data/spec/support/client_registry.rb +254 -0
  1513. data/spec/support/client_registry_macros.rb +26 -0
  1514. data/spec/support/cluster_tools.rb +379 -0
  1515. data/spec/support/common_shortcuts.rb +375 -0
  1516. data/spec/support/constraints.rb +19 -0
  1517. data/spec/support/crypt/corpus/corpus-key-aws.json +33 -0
  1518. data/spec/support/crypt/corpus/corpus-key-local.json +31 -0
  1519. data/spec/support/crypt/corpus/corpus-schema.json +2057 -0
  1520. data/spec/support/crypt/corpus/corpus.json +3657 -0
  1521. data/spec/support/crypt/corpus/corpus_encrypted.json +4152 -0
  1522. data/spec/support/crypt/data_keys/key_document_aws.json +34 -0
  1523. data/spec/support/crypt/data_keys/key_document_local.json +31 -0
  1524. data/spec/support/crypt/external/external-key.json +31 -0
  1525. data/spec/support/crypt/external/external-schema.json +19 -0
  1526. data/spec/support/crypt/limits/limits-doc.json +102 -0
  1527. data/spec/support/crypt/limits/limits-key.json +31 -0
  1528. data/spec/support/crypt/limits/limits-schema.json +1405 -0
  1529. data/spec/support/crypt/schema_maps/schema_map_aws.json +17 -0
  1530. data/spec/support/crypt/schema_maps/schema_map_aws_key_alt_names.json +12 -0
  1531. data/spec/support/crypt/schema_maps/schema_map_local.json +18 -0
  1532. data/spec/support/crypt/schema_maps/schema_map_local_key_alt_names.json +12 -0
  1533. data/spec/support/crypt.rb +157 -0
  1534. data/spec/support/dns.rb +16 -0
  1535. data/spec/support/event_subscriber.rb +221 -0
  1536. data/spec/support/json_ext_formatter.rb +16 -0
  1537. data/spec/support/keyword_struct.rb +29 -0
  1538. data/spec/support/local_resource_registry.rb +37 -0
  1539. data/spec/support/matchers.rb +75 -0
  1540. data/spec/support/monitoring_ext.rb +19 -0
  1541. data/spec/support/ocsp +1 -0
  1542. data/spec/support/primary_socket.rb +24 -0
  1543. data/spec/support/sdam_formatter_integration.rb +119 -0
  1544. data/spec/support/session_registry.rb +55 -0
  1545. data/spec/support/shared/app_metadata.rb +167 -0
  1546. data/spec/support/shared/protocol.rb +36 -0
  1547. data/spec/support/shared/scram_conversation.rb +103 -0
  1548. data/spec/support/shared/server_selector.rb +233 -0
  1549. data/spec/support/shared/session.rb +910 -0
  1550. data/spec/support/spec_config.rb +637 -0
  1551. data/spec/support/spec_setup.rb +83 -0
  1552. data/spec/support/utils.rb +598 -0
  1553. data.tar.gz.sig +0 -0
  1554. metadata +2696 -179
  1555. metadata.gz.sig +0 -0
  1556. data/VERSION +0 -1
  1557. data/lib/mongo/db.rb +0 -644
  1558. data/lib/mongo/exceptions.rb +0 -65
  1559. data/lib/mongo/gridfs/grid.rb +0 -101
  1560. data/lib/mongo/gridfs/grid_ext.rb +0 -39
  1561. data/lib/mongo/gridfs/grid_file_system.rb +0 -150
  1562. data/lib/mongo/gridfs/grid_io.rb +0 -472
  1563. data/lib/mongo/legacy.rb +0 -71
  1564. data/lib/mongo/mongo_client.rb +0 -657
  1565. data/lib/mongo/mongo_replica_set_client.rb +0 -485
  1566. data/lib/mongo/mongo_sharded_client.rb +0 -144
  1567. data/lib/mongo/networking.rb +0 -343
  1568. data/lib/mongo/util/conversions.rb +0 -95
  1569. data/lib/mongo/util/core_ext.rb +0 -87
  1570. data/lib/mongo/util/logging.rb +0 -69
  1571. data/lib/mongo/util/node.rb +0 -197
  1572. data/lib/mongo/util/pool.rb +0 -316
  1573. data/lib/mongo/util/pool_manager.rb +0 -270
  1574. data/lib/mongo/util/read_preference.rb +0 -112
  1575. data/lib/mongo/util/server_version.rb +0 -54
  1576. data/lib/mongo/util/sharding_pool_manager.rb +0 -54
  1577. data/lib/mongo/util/socket_util.rb +0 -20
  1578. data/lib/mongo/util/ssl_socket.rb +0 -51
  1579. data/lib/mongo/util/support.rb +0 -113
  1580. data/lib/mongo/util/tcp_socket.rb +0 -62
  1581. data/lib/mongo/util/thread_local_variable_manager.rb +0 -11
  1582. data/lib/mongo/util/unix_socket.rb +0 -23
  1583. data/lib/mongo/util/uri_parser.rb +0 -337
  1584. data/lib/mongo/util/write_concern.rb +0 -54
  1585. data/test/functional/authentication_test.rb +0 -18
  1586. data/test/functional/collection_test.rb +0 -1410
  1587. data/test/functional/connection_test.rb +0 -449
  1588. data/test/functional/conversions_test.rb +0 -119
  1589. data/test/functional/cursor_fail_test.rb +0 -49
  1590. data/test/functional/cursor_message_test.rb +0 -43
  1591. data/test/functional/cursor_test.rb +0 -548
  1592. data/test/functional/db_api_test.rb +0 -805
  1593. data/test/functional/db_connection_test.rb +0 -13
  1594. data/test/functional/db_test.rb +0 -282
  1595. data/test/functional/grid_file_system_test.rb +0 -273
  1596. data/test/functional/grid_io_test.rb +0 -238
  1597. data/test/functional/grid_test.rb +0 -259
  1598. data/test/functional/pool_test.rb +0 -47
  1599. data/test/functional/safe_test.rb +0 -84
  1600. data/test/functional/support_test.rb +0 -48
  1601. data/test/functional/threading_test.rb +0 -95
  1602. data/test/functional/timeout_test.rb +0 -60
  1603. data/test/functional/uri_test.rb +0 -200
  1604. data/test/functional/write_concern_test.rb +0 -104
  1605. data/test/replica_set/authentication_test.rb +0 -20
  1606. data/test/replica_set/basic_test.rb +0 -133
  1607. data/test/replica_set/client_test.rb +0 -264
  1608. data/test/replica_set/complex_connect_test.rb +0 -64
  1609. data/test/replica_set/connection_test.rb +0 -116
  1610. data/test/replica_set/count_test.rb +0 -50
  1611. data/test/replica_set/cursor_test.rb +0 -198
  1612. data/test/replica_set/insert_test.rb +0 -50
  1613. data/test/replica_set/max_values_test.rb +0 -76
  1614. data/test/replica_set/pinning_test.rb +0 -41
  1615. data/test/replica_set/query_test.rb +0 -59
  1616. data/test/replica_set/read_preference_test.rb +0 -200
  1617. data/test/replica_set/refresh_test.rb +0 -161
  1618. data/test/replica_set/replication_ack_test.rb +0 -74
  1619. data/test/sharded_cluster/basic_test.rb +0 -155
  1620. data/test/shared/authentication.rb +0 -66
  1621. data/test/test_helper.rb +0 -210
  1622. data/test/threading/basic_test.rb +0 -80
  1623. data/test/tools/mongo_config.rb +0 -568
  1624. data/test/tools/mongo_config_test.rb +0 -146
  1625. data/test/unit/client_test.rb +0 -252
  1626. data/test/unit/collection_test.rb +0 -176
  1627. data/test/unit/connection_test.rb +0 -246
  1628. data/test/unit/cursor_test.rb +0 -273
  1629. data/test/unit/db_test.rb +0 -112
  1630. data/test/unit/grid_test.rb +0 -62
  1631. data/test/unit/mongo_sharded_client_test.rb +0 -32
  1632. data/test/unit/node_test.rb +0 -78
  1633. data/test/unit/pool_manager_test.rb +0 -94
  1634. data/test/unit/pool_test.rb +0 -9
  1635. data/test/unit/read_pref_test.rb +0 -21
  1636. data/test/unit/read_test.rb +0 -145
  1637. data/test/unit/safe_test.rb +0 -144
  1638. data/test/unit/sharding_pool_manager_test.rb +0 -63
  1639. data/test/unit/util_test.rb +0 -55
  1640. data/test/unit/write_concern_test.rb +0 -161
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception that is raised when trying to create a database with no name.
22
+ #
23
+ # @since 2.6.0
24
+ class InsufficientIterationCount < Error
25
+
26
+ # Instantiate the new exception.
27
+ #
28
+ # @example Instantiate the exception.
29
+ # Mongo::Error::InvalidDatabaseName.new
30
+ #
31
+ # @since 2.6.0
32
+ def initialize(msg)
33
+ super(msg)
34
+ end
35
+
36
+ def self.message(required_count, given_count)
37
+ "This auth mechanism requires an iteration count of #{required_count}, but the server only requested #{given_count}"
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2021 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Raised when the driver detects an internal implementation problem.
22
+ class InternalDriverError < Error
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2019-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Raised when validation of addresses in URIs and SRV records fails.
22
+ #
23
+ # @since 2.11.0
24
+ class InvalidAddress < Error
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2016-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # This exception is raised when the metadata document sent to the server
22
+ # at the time of a connection handshake is invalid.
23
+ #
24
+ # @since 2.4.0
25
+ class InvalidApplicationName < Error
26
+
27
+ # Instantiate the new exception.
28
+ #
29
+ # @example Create the exception.
30
+ # InvalidApplicationName.new(app_name, 128)
31
+ #
32
+ # @param [ String ] app_name The application name option.
33
+ # @param [ Integer ] max_size The max byte size of the application name.
34
+ #
35
+ # @since 2.4.0
36
+ def initialize(app_name, max_size)
37
+ super("The provided application name '#{app_name}' cannot exceed #{max_size} bytes.")
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception raised if an non-existent operation type is used.
22
+ #
23
+ # @since 2.0.0
24
+ class InvalidBulkOperation < Error
25
+
26
+ # Instantiate the new exception.
27
+ #
28
+ # @example Instantiate the exception.
29
+ # Mongo::Error::InvalidBulkOperation.new(name)
30
+ #
31
+ # @param [ String ] type The bulk operation type.
32
+ # @param [ Hash ] operation The bulk operation.
33
+ #
34
+ # @since 2.0.0
35
+ def initialize(type, operation)
36
+ super("Invalid document format for bulk #{type} operation: #{operation}.")
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception raised if an non-existent operation type is used.
22
+ #
23
+ # @since 2.0.0
24
+ class InvalidBulkOperationType < Error
25
+
26
+ # Instantiate the new exception.
27
+ #
28
+ # @example Instantiate the exception.
29
+ # Mongo::Error::InvalidBulkOperationType.new(type)
30
+ #
31
+ # @param [ String ] type The attempted operation type.
32
+ #
33
+ # @since 2.0.0
34
+ def initialize(type)
35
+ super("Invalid bulk operation type: #{type}.")
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception that is raised when trying to create a collection with no name.
22
+ #
23
+ # @since 2.0.0
24
+ class InvalidCollectionName < Error
25
+
26
+ # The message is constant.
27
+ #
28
+ # @since 2.0.0
29
+ MESSAGE = 'nil is an invalid collection name. Please provide a string or symbol.'.freeze
30
+
31
+ # Instantiate the new exception.
32
+ #
33
+ # @example Instantiate the exception.
34
+ # Mongo::Collection::InvalidName.new
35
+ #
36
+ # @since 2.0.0
37
+ def initialize
38
+ super(MESSAGE)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2019-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception raised when an unsupported operation is attempted on a cursor.
22
+ #
23
+ # Examples:
24
+ # - Attempting to iterate a regular cursor more than once.
25
+ # - Attempting to call try_next on a caching cursor after it had been
26
+ # iterated completely the first time.
27
+ class InvalidCursorOperation < Error
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception that is raised when trying to create a database with no name.
22
+ #
23
+ # @since 2.0.0
24
+ class InvalidDatabaseName < Error
25
+
26
+ # The message is constant.
27
+ #
28
+ # @since 2.0.0
29
+ MESSAGE = 'nil is an invalid database name. Please provide a string or symbol.'.freeze
30
+
31
+ # Instantiate the new exception.
32
+ #
33
+ # @example Instantiate the exception.
34
+ # Mongo::Error::InvalidDatabaseName.new
35
+ #
36
+ # @since 2.0.0
37
+ def initialize
38
+ super(MESSAGE)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception raised if the object is not a valid document.
22
+ #
23
+ # @since 2.0.0
24
+ class InvalidDocument < Error
25
+
26
+ # The error message.
27
+ #
28
+ # @since 2.0.0
29
+ MESSAGE = 'Invalid document provided.'.freeze
30
+
31
+ # Instantiate the new exception.
32
+ #
33
+ # @example Instantiate the exception.
34
+ # Mongo::Error::InvalidDocument.new
35
+ #
36
+ # @since 2.0.0
37
+ def initialize
38
+ super(MESSAGE)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Raised if the file md5 and server md5 do not match when acknowledging
22
+ # GridFS writes.
23
+ #
24
+ # @since 2.0.0
25
+ class InvalidFile < Error
26
+
27
+ # Create the new exception.
28
+ #
29
+ # @example Create the new exception.
30
+ # Mongo::Error::InvalidFile.new(file_md5, server_md5)
31
+ #
32
+ # @param [ String ] client_md5 The client side file md5.
33
+ # @param [ String ] server_md5 The server side file md5.
34
+ #
35
+ # @since 2.0.0
36
+ def initialize(client_md5, server_md5)
37
+ super("File MD5 on client side is #{client_md5} but the server reported #{server_md5}.")
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Raised if the requested file revision is not found.
22
+ #
23
+ # @since 2.1.0
24
+ class InvalidFileRevision < Error
25
+
26
+ # Create the new exception.
27
+ #
28
+ # @example Create the new exception.
29
+ # Mongo::Error::InvalidFileRevision.new('some-file.txt', 3)
30
+ #
31
+ # @param [ String ] filename The name of the file.
32
+ # @param [ Integer ] revision The requested revision.
33
+ #
34
+ # @since 2.1.0
35
+ def initialize(filename, revision)
36
+ super("No revision #{revision} found for file '#{filename}'.")
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception that is raised when trying to create a client with an invalid
22
+ # min_pool_size option.
23
+ #
24
+ # @since 2.4.2
25
+ class InvalidMinPoolSize < Error
26
+
27
+ # Instantiate the new exception.
28
+ #
29
+ # @example Instantiate the exception.
30
+ # Mongo::Error::InvalidMinPoolSize.new(10, 5)
31
+ #
32
+ # @since 2.4.2
33
+ def initialize(min, max)
34
+ super("Invalid min pool size: #{min}. Please ensure that it is less than the max size: #{max}. ")
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2015-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # This exception is raised when the server nonce returned does not
22
+ # start with the client nonce sent to it.
23
+ #
24
+ # @since 2.0.0
25
+ class InvalidNonce < Error
26
+
27
+ # @return [ String ] nonce The client nonce.
28
+ attr_reader :nonce
29
+
30
+ # @return [ String ] rnonce The server nonce.
31
+ attr_reader :rnonce
32
+
33
+ # Instantiate the new exception.
34
+ #
35
+ # @example Create the exception.
36
+ # InvalidNonce.new(nonce, rnonce)
37
+ #
38
+ # @param [ String ] nonce The client nonce.
39
+ # @param [ String ] rnonce The server nonce.
40
+ #
41
+ # @since 2.0.0
42
+ def initialize(nonce, rnonce)
43
+ @nonce = nonce
44
+ @rnonce = rnonce
45
+ super("Expected server rnonce '#{rnonce}' to start with client nonce '#{nonce}'.")
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Raised when an invalid read concern is provided.
22
+ class InvalidReadConcern < Error
23
+ # Instantiate the new exception.
24
+ def initialize(msg = nil)
25
+ super(msg || 'Invalid read concern option provided.' \
26
+ 'The only valid key is :level, for which accepted values are' \
27
+ ':local, :majority, and :snapshot')
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2018-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception that is raised when trying to create a client with an invalid
22
+ # read option.
23
+ #
24
+ # @since 2.6.0
25
+ class InvalidReadOption < Error
26
+
27
+ # Instantiate the new exception.
28
+ #
29
+ # @example Instantiate the exception.
30
+ # Mongo::Error::InvalidReadOption.new({:mode => 'bogus'})
31
+ #
32
+ # @since 2.6.0
33
+ def initialize(read_option, msg)
34
+ super("Invalid read option: #{read_option}: #{msg}")
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2014-2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Exception raised if the object is not a valid replacement document.
22
+ #
23
+ # @since 2.0.0
24
+ class InvalidReplacementDocument < Error
25
+
26
+ # The error message.
27
+ #
28
+ # @since 2.0.0
29
+ MESSAGE = 'Invalid replacement document provided'.freeze
30
+
31
+ # Instantiate the new exception.
32
+ #
33
+ # @example Instantiate the exception.
34
+ # Mongo::Error::InvalidReplacementDoc.new
35
+ #
36
+ # @since 2.0.0
37
+ def initialize
38
+ super(MESSAGE)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ # Copyright (C) 2020 MongoDB Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Mongo
19
+ class Error
20
+
21
+ # Raised when the server returned an invalid Host value in AWS auth.
22
+ class InvalidServerAuthHost < InvalidServerAuthResponse
23
+ end
24
+ end
25
+ end