mongoid 7.1.11 → 7.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (485) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +10 -3
  4. data/lib/config/locales/en.yml +37 -14
  5. data/lib/mongoid/association/depending.rb +1 -6
  6. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +1 -1
  7. data/lib/mongoid/association/many.rb +3 -3
  8. data/lib/mongoid/association/proxy.rb +1 -1
  9. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
  10. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +1 -1
  11. data/lib/mongoid/association/referenced/has_many/enumerable.rb +37 -2
  12. data/lib/mongoid/association/referenced/has_many/proxy.rb +9 -2
  13. data/lib/mongoid/association/referenced/has_one/buildable.rb +9 -1
  14. data/lib/mongoid/atomic/modifiers.rb +1 -1
  15. data/lib/mongoid/attributes/dynamic.rb +1 -1
  16. data/lib/mongoid/attributes.rb +1 -8
  17. data/lib/mongoid/clients/factory.rb +17 -0
  18. data/lib/mongoid/composable.rb +1 -0
  19. data/lib/mongoid/config/environment.rb +1 -9
  20. data/lib/mongoid/config.rb +3 -0
  21. data/lib/mongoid/contextual/atomic.rb +2 -7
  22. data/lib/mongoid/contextual/mongo.rb +23 -4
  23. data/lib/mongoid/contextual/none.rb +0 -3
  24. data/lib/mongoid/copyable.rb +7 -3
  25. data/lib/mongoid/criteria/queryable/key.rb +1 -1
  26. data/lib/mongoid/criteria/queryable/mergeable.rb +2 -2
  27. data/lib/mongoid/criteria/queryable/selectable.rb +23 -8
  28. data/lib/mongoid/criteria/queryable/selector.rb +7 -3
  29. data/lib/mongoid/criteria/queryable/storable.rb +7 -7
  30. data/lib/mongoid/criteria.rb +58 -8
  31. data/lib/mongoid/document.rb +19 -9
  32. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +25 -0
  33. data/lib/mongoid/errors/invalid_elem_match_operator.rb +33 -0
  34. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +26 -0
  35. data/lib/mongoid/errors/invalid_expression_operator.rb +28 -0
  36. data/lib/mongoid/errors/invalid_field_operator.rb +33 -0
  37. data/lib/mongoid/errors/invalid_query.rb +41 -0
  38. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  39. data/lib/mongoid/errors.rb +7 -2
  40. data/lib/mongoid/extensions.rb +1 -0
  41. data/lib/mongoid/factory.rb +27 -10
  42. data/lib/mongoid/fields/validators/macro.rb +22 -9
  43. data/lib/mongoid/fields.rb +3 -0
  44. data/lib/mongoid/findable.rb +50 -14
  45. data/lib/mongoid/indexable.rb +2 -2
  46. data/lib/mongoid/interceptable.rb +2 -4
  47. data/lib/mongoid/matchable.rb +1 -149
  48. data/lib/mongoid/matcher/all.rb +22 -0
  49. data/lib/mongoid/matcher/and.rb +21 -0
  50. data/lib/mongoid/matcher/elem_match.rb +35 -0
  51. data/lib/mongoid/matcher/elem_match_expression.rb +20 -0
  52. data/lib/mongoid/matcher/eq.rb +11 -0
  53. data/lib/mongoid/matcher/eq_impl.rb +32 -0
  54. data/lib/mongoid/matcher/eq_impl_with_regexp.rb +21 -0
  55. data/lib/mongoid/matcher/exists.rb +15 -0
  56. data/lib/mongoid/matcher/expression.rb +40 -0
  57. data/lib/mongoid/matcher/expression_operator.rb +19 -0
  58. data/lib/mongoid/matcher/field_expression.rb +63 -0
  59. data/lib/mongoid/matcher/field_operator.rb +52 -0
  60. data/lib/mongoid/matcher/gt.rb +17 -0
  61. data/lib/mongoid/matcher/gte.rb +17 -0
  62. data/lib/mongoid/matcher/in.rb +25 -0
  63. data/lib/mongoid/matcher/lt.rb +17 -0
  64. data/lib/mongoid/matcher/lte.rb +17 -0
  65. data/lib/mongoid/matcher/ne.rb +16 -0
  66. data/lib/mongoid/matcher/nin.rb +11 -0
  67. data/lib/mongoid/matcher/nor.rb +25 -0
  68. data/lib/mongoid/matcher/not.rb +29 -0
  69. data/lib/mongoid/matcher/or.rb +21 -0
  70. data/lib/mongoid/matcher/regex.rb +41 -0
  71. data/lib/mongoid/matcher/size.rb +26 -0
  72. data/lib/mongoid/matcher.rb +127 -0
  73. data/lib/mongoid/persistable/deletable.rb +1 -1
  74. data/lib/mongoid/persistence_context.rb +1 -3
  75. data/lib/mongoid/query_cache.rb +64 -62
  76. data/lib/mongoid/reloadable.rb +2 -7
  77. data/lib/mongoid/serializable.rb +1 -1
  78. data/lib/mongoid/stringified_symbol.rb +53 -0
  79. data/lib/mongoid/tasks/database.rb +1 -1
  80. data/lib/mongoid/traversable.rb +111 -4
  81. data/lib/mongoid/validatable/associated.rb +1 -1
  82. data/lib/mongoid/validatable/presence.rb +3 -3
  83. data/lib/mongoid/validatable/uniqueness.rb +1 -1
  84. data/lib/mongoid/version.rb +1 -1
  85. data/lib/mongoid.rb +23 -1
  86. data/lib/rails/generators/mongoid/config/config_generator.rb +1 -8
  87. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +1 -1
  88. data/spec/README.md +19 -4
  89. data/spec/integration/app_spec.rb +84 -174
  90. data/spec/integration/associations/embedded_spec.rb +94 -0
  91. data/spec/integration/associations/has_many_spec.rb +67 -14
  92. data/spec/integration/associations/has_one_spec.rb +67 -14
  93. data/spec/integration/associations/nested_attributes_assignment_spec.rb +116 -0
  94. data/spec/integration/atomic/modifiers_spec.rb +117 -0
  95. data/spec/integration/discriminator_key_spec.rb +354 -0
  96. data/spec/integration/discriminator_value_spec.rb +207 -0
  97. data/spec/integration/document_spec.rb +0 -21
  98. data/spec/integration/{matchable_spec.rb → matcher_examples_spec.rb} +120 -41
  99. data/spec/integration/matcher_operator_data/all.yml +140 -0
  100. data/spec/integration/matcher_operator_data/and.yml +93 -0
  101. data/spec/integration/matcher_operator_data/elem_match.yml +363 -0
  102. data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
  103. data/spec/integration/matcher_operator_data/eq.yml +191 -0
  104. data/spec/integration/matcher_operator_data/exists.yml +213 -0
  105. data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
  106. data/spec/integration/matcher_operator_data/gt.yml +132 -0
  107. data/spec/integration/matcher_operator_data/gte.yml +132 -0
  108. data/spec/integration/matcher_operator_data/implicit.yml +331 -0
  109. data/spec/integration/matcher_operator_data/implicit_traversal.yml +16 -0
  110. data/spec/integration/matcher_operator_data/in.yml +194 -0
  111. data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
  112. data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
  113. data/spec/integration/matcher_operator_data/lt.yml +132 -0
  114. data/spec/integration/matcher_operator_data/lte.yml +132 -0
  115. data/spec/integration/matcher_operator_data/multiple.yml +29 -0
  116. data/spec/integration/matcher_operator_data/ne.yml +150 -0
  117. data/spec/integration/matcher_operator_data/nin.yml +114 -0
  118. data/spec/integration/matcher_operator_data/nor.yml +126 -0
  119. data/spec/integration/matcher_operator_data/not.yml +196 -0
  120. data/spec/integration/matcher_operator_data/or.yml +137 -0
  121. data/spec/integration/matcher_operator_data/regex.yml +174 -0
  122. data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
  123. data/spec/integration/matcher_operator_data/size.yml +174 -0
  124. data/spec/integration/matcher_operator_spec.rb +100 -0
  125. data/spec/integration/matcher_spec.rb +189 -0
  126. data/spec/integration/server_query_spec.rb +142 -0
  127. data/spec/integration/stringified_symbol_field_spec.rb +190 -0
  128. data/spec/lite_spec_helper.rb +4 -3
  129. data/spec/mongoid/association/depending_spec.rb +78 -26
  130. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +0 -50
  131. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +37 -17
  132. data/spec/mongoid/association/embedded/embeds_many_models.rb +1 -0
  133. data/spec/mongoid/association/embedded/embeds_one_models.rb +1 -0
  134. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +0 -17
  135. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +460 -186
  136. data/spec/mongoid/association/referenced/has_many_models.rb +21 -0
  137. data/spec/mongoid/association/referenced/has_one_models.rb +21 -0
  138. data/spec/mongoid/association/referenced/has_one_spec.rb +1 -1
  139. data/spec/mongoid/atomic/modifiers_spec.rb +47 -0
  140. data/spec/mongoid/atomic/paths_spec.rb +0 -41
  141. data/spec/mongoid/atomic_spec.rb +23 -0
  142. data/spec/mongoid/attributes/nested_spec.rb +1 -1
  143. data/spec/mongoid/attributes_spec.rb +0 -241
  144. data/spec/mongoid/clients/factory_spec.rb +35 -9
  145. data/spec/mongoid/clients/options_spec.rb +3 -11
  146. data/spec/mongoid/clients/sessions_spec.rb +1 -6
  147. data/spec/mongoid/config/environment_spec.rb +8 -86
  148. data/spec/mongoid/config_spec.rb +28 -0
  149. data/spec/mongoid/contextual/atomic_spec.rb +29 -81
  150. data/spec/mongoid/contextual/geo_near_spec.rb +1 -1
  151. data/spec/mongoid/contextual/mongo_spec.rb +70 -16
  152. data/spec/mongoid/copyable_spec.rb +197 -18
  153. data/spec/mongoid/copyable_spec_models.rb +28 -0
  154. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -36
  155. data/spec/mongoid/criteria/queryable/selectable_spec.rb +84 -82
  156. data/spec/mongoid/criteria_spec.rb +204 -43
  157. data/spec/mongoid/document_query_spec.rb +0 -51
  158. data/spec/mongoid/document_spec.rb +90 -36
  159. data/spec/mongoid/equality_spec.rb +0 -1
  160. data/spec/mongoid/errors/delete_restriction_spec.rb +1 -1
  161. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -20
  162. data/spec/mongoid/extensions/stringified_symbol_spec.rb +85 -0
  163. data/spec/mongoid/factory_spec.rb +261 -28
  164. data/spec/mongoid/fields_spec.rb +48 -2
  165. data/spec/mongoid/findable_spec.rb +32 -0
  166. data/spec/mongoid/indexable_spec.rb +28 -2
  167. data/spec/mongoid/inspectable_spec.rb +29 -2
  168. data/spec/mongoid/interceptable_spec.rb +2 -2
  169. data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +259 -0
  170. data/spec/mongoid/matcher/extract_attribute_spec.rb +47 -0
  171. data/spec/mongoid/persistable/creatable_spec.rb +108 -25
  172. data/spec/mongoid/persistable/deletable_spec.rb +86 -0
  173. data/spec/mongoid/persistable/savable_spec.rb +174 -16
  174. data/spec/mongoid/persistable/settable_spec.rb +0 -30
  175. data/spec/mongoid/persistable/updatable_spec.rb +0 -2
  176. data/spec/mongoid/persistable_spec.rb +2 -2
  177. data/spec/mongoid/query_cache_middleware_spec.rb +16 -3
  178. data/spec/mongoid/query_cache_spec.rb +442 -41
  179. data/spec/mongoid/reloadable_spec.rb +72 -0
  180. data/spec/mongoid/serializable_spec.rb +21 -3
  181. data/spec/mongoid/traversable_spec.rb +1100 -0
  182. data/spec/shared/lib/mrss/constraints.rb +10 -92
  183. data/spec/shared/lib/mrss/lite_constraints.rb +0 -16
  184. data/spec/shared/lib/mrss/spec_organizer.rb +2 -32
  185. data/spec/spec_helper.rb +3 -3
  186. data/spec/support/constraints.rb +24 -0
  187. data/spec/support/helpers.rb +1 -1
  188. data/spec/{app → support}/models/actor.rb +1 -1
  189. data/spec/{app → support}/models/address.rb +0 -4
  190. data/spec/support/models/armrest.rb +10 -0
  191. data/spec/{app → support}/models/browser.rb +1 -1
  192. data/spec/{app → support}/models/canvas.rb +1 -1
  193. data/spec/{app → support}/models/coding.rb +1 -1
  194. data/spec/support/models/crate.rb +13 -0
  195. data/spec/support/models/deed.rb +8 -0
  196. data/spec/{app → support}/models/dictionary.rb +0 -6
  197. data/spec/{app → support}/models/driver.rb +1 -1
  198. data/spec/support/models/guitar.rb +5 -0
  199. data/spec/support/models/idnodef.rb +8 -0
  200. data/spec/support/models/instrument.rb +9 -0
  201. data/spec/{app → support}/models/item.rb +1 -1
  202. data/spec/{app → support}/models/mop.rb +0 -10
  203. data/spec/support/models/order.rb +11 -0
  204. data/spec/{app → support}/models/owner.rb +2 -0
  205. data/spec/{app → support}/models/palette.rb +1 -1
  206. data/spec/{app → support}/models/person.rb +1 -10
  207. data/spec/support/models/piano.rb +5 -0
  208. data/spec/support/models/profile.rb +18 -0
  209. data/spec/support/models/publication.rb +5 -0
  210. data/spec/{app/models/profile.rb → support/models/scribe.rb} +2 -2
  211. data/spec/support/models/seat.rb +25 -0
  212. data/spec/{app → support}/models/shape.rb +2 -2
  213. data/spec/support/models/system_role.rb +7 -0
  214. data/spec/{app → support}/models/tool.rb +2 -2
  215. data/spec/support/models/toy.rb +10 -0
  216. data/spec/{app → support}/models/truck.rb +2 -0
  217. data/spec/{app → support}/models/vehicle.rb +7 -2
  218. data/spec/{app → support}/models/writer.rb +2 -2
  219. data/spec/support/spec_config.rb +1 -9
  220. data.tar.gz.sig +0 -0
  221. metadata +839 -820
  222. metadata.gz.sig +2 -2
  223. data/lib/mongoid/errors/empty_config_file.rb +0 -26
  224. data/lib/mongoid/errors/invalid_config_file.rb +0 -26
  225. data/lib/mongoid/matchable/all.rb +0 -30
  226. data/lib/mongoid/matchable/and.rb +0 -32
  227. data/lib/mongoid/matchable/default.rb +0 -121
  228. data/lib/mongoid/matchable/elem_match.rb +0 -36
  229. data/lib/mongoid/matchable/eq.rb +0 -23
  230. data/lib/mongoid/matchable/exists.rb +0 -25
  231. data/lib/mongoid/matchable/gt.rb +0 -25
  232. data/lib/mongoid/matchable/gte.rb +0 -25
  233. data/lib/mongoid/matchable/in.rb +0 -26
  234. data/lib/mongoid/matchable/lt.rb +0 -25
  235. data/lib/mongoid/matchable/lte.rb +0 -25
  236. data/lib/mongoid/matchable/ne.rb +0 -23
  237. data/lib/mongoid/matchable/nin.rb +0 -24
  238. data/lib/mongoid/matchable/nor.rb +0 -38
  239. data/lib/mongoid/matchable/or.rb +0 -35
  240. data/lib/mongoid/matchable/regexp.rb +0 -30
  241. data/lib/mongoid/matchable/size.rb +0 -23
  242. data/spec/app/models/customer.rb +0 -11
  243. data/spec/app/models/customer_address.rb +0 -12
  244. data/spec/app/models/publication.rb +0 -5
  245. data/spec/integration/callbacks_models.rb +0 -49
  246. data/spec/integration/callbacks_spec.rb +0 -216
  247. data/spec/integration/contextual/empty_spec.rb +0 -142
  248. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -32
  249. data/spec/mongoid/matchable/all_spec.rb +0 -34
  250. data/spec/mongoid/matchable/and_spec.rb +0 -190
  251. data/spec/mongoid/matchable/default_spec.rb +0 -140
  252. data/spec/mongoid/matchable/elem_match_spec.rb +0 -109
  253. data/spec/mongoid/matchable/eq_spec.rb +0 -49
  254. data/spec/mongoid/matchable/exists_spec.rb +0 -60
  255. data/spec/mongoid/matchable/gt_spec.rb +0 -89
  256. data/spec/mongoid/matchable/gte_spec.rb +0 -87
  257. data/spec/mongoid/matchable/in_spec.rb +0 -52
  258. data/spec/mongoid/matchable/lt_spec.rb +0 -88
  259. data/spec/mongoid/matchable/lte_spec.rb +0 -88
  260. data/spec/mongoid/matchable/ne_spec.rb +0 -49
  261. data/spec/mongoid/matchable/nin_spec.rb +0 -51
  262. data/spec/mongoid/matchable/nor_spec.rb +0 -210
  263. data/spec/mongoid/matchable/or_spec.rb +0 -134
  264. data/spec/mongoid/matchable/regexp_spec.rb +0 -62
  265. data/spec/mongoid/matchable/size_spec.rb +0 -28
  266. data/spec/mongoid/matchable_spec.rb +0 -856
  267. data/spec/shared/bin/get-mongodb-download-url +0 -17
  268. data/spec/shared/bin/s3-copy +0 -45
  269. data/spec/shared/bin/s3-upload +0 -69
  270. data/spec/shared/lib/mrss/cluster_config.rb +0 -226
  271. data/spec/shared/lib/mrss/docker_runner.rb +0 -271
  272. data/spec/shared/lib/mrss/event_subscriber.rb +0 -200
  273. data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
  274. data/spec/shared/lib/mrss/utils.rb +0 -15
  275. data/spec/shared/share/Dockerfile.erb +0 -323
  276. data/spec/shared/share/haproxy-1.conf +0 -16
  277. data/spec/shared/share/haproxy-2.conf +0 -17
  278. data/spec/shared/shlib/distro.sh +0 -73
  279. data/spec/shared/shlib/server.sh +0 -367
  280. data/spec/shared/shlib/set_env.sh +0 -131
  281. /data/spec/{app → support}/models/account.rb +0 -0
  282. /data/spec/{app → support}/models/acolyte.rb +0 -0
  283. /data/spec/{app → support}/models/actress.rb +0 -0
  284. /data/spec/{app → support}/models/address_component.rb +0 -0
  285. /data/spec/{app → support}/models/address_number.rb +0 -0
  286. /data/spec/{app → support}/models/agency.rb +0 -0
  287. /data/spec/{app → support}/models/agent.rb +0 -0
  288. /data/spec/{app → support}/models/album.rb +0 -0
  289. /data/spec/{app → support}/models/alert.rb +0 -0
  290. /data/spec/{app → support}/models/animal.rb +0 -0
  291. /data/spec/{app → support}/models/answer.rb +0 -0
  292. /data/spec/{app → support}/models/appointment.rb +0 -0
  293. /data/spec/{app → support}/models/array_field.rb +0 -0
  294. /data/spec/{app → support}/models/article.rb +0 -0
  295. /data/spec/{app → support}/models/artist.rb +0 -0
  296. /data/spec/{app → support}/models/artwork.rb +0 -0
  297. /data/spec/{app → support}/models/audio.rb +0 -0
  298. /data/spec/{app → support}/models/augmentation.rb +0 -0
  299. /data/spec/{app → support}/models/author.rb +0 -0
  300. /data/spec/{app → support}/models/baby.rb +0 -0
  301. /data/spec/{app → support}/models/band.rb +0 -0
  302. /data/spec/{app → support}/models/bar.rb +0 -0
  303. /data/spec/{app → support}/models/basic.rb +0 -0
  304. /data/spec/{app → support}/models/bed.rb +0 -0
  305. /data/spec/{app → support}/models/big_palette.rb +0 -0
  306. /data/spec/{app → support}/models/birthday.rb +0 -0
  307. /data/spec/{app → support}/models/bomb.rb +0 -0
  308. /data/spec/{app → support}/models/book.rb +0 -0
  309. /data/spec/{app → support}/models/breed.rb +0 -0
  310. /data/spec/{app → support}/models/building.rb +0 -0
  311. /data/spec/{app → support}/models/building_address.rb +0 -0
  312. /data/spec/{app → support}/models/bus.rb +0 -0
  313. /data/spec/{app → support}/models/business.rb +0 -0
  314. /data/spec/{app → support}/models/callback_test.rb +0 -0
  315. /data/spec/{app → support}/models/car.rb +0 -0
  316. /data/spec/{app → support}/models/cat.rb +0 -0
  317. /data/spec/{app → support}/models/category.rb +0 -0
  318. /data/spec/{app → support}/models/child.rb +0 -0
  319. /data/spec/{app → support}/models/child_doc.rb +0 -0
  320. /data/spec/{app → support}/models/church.rb +0 -0
  321. /data/spec/{app → support}/models/circle.rb +0 -0
  322. /data/spec/{app → support}/models/circuit.rb +0 -0
  323. /data/spec/{app → support}/models/circus.rb +0 -0
  324. /data/spec/{app → support}/models/code.rb +0 -0
  325. /data/spec/{app → support}/models/coding/pull_request.rb +0 -0
  326. /data/spec/{app → support}/models/comment.rb +0 -0
  327. /data/spec/{app → support}/models/company.rb +0 -0
  328. /data/spec/{app → support}/models/consumption_period.rb +0 -0
  329. /data/spec/{app → support}/models/contextable_item.rb +0 -0
  330. /data/spec/{app → support}/models/contractor.rb +0 -0
  331. /data/spec/{app → support}/models/cookie.rb +0 -0
  332. /data/spec/{app → support}/models/country_code.rb +0 -0
  333. /data/spec/{app → support}/models/courier_job.rb +0 -0
  334. /data/spec/{app → support}/models/definition.rb +0 -0
  335. /data/spec/{app → support}/models/delegating_patient.rb +0 -0
  336. /data/spec/{app → support}/models/description.rb +0 -0
  337. /data/spec/{app → support}/models/division.rb +0 -0
  338. /data/spec/{app → support}/models/doctor.rb +0 -0
  339. /data/spec/{app → support}/models/dog.rb +0 -0
  340. /data/spec/{app → support}/models/dokument.rb +0 -0
  341. /data/spec/{app → support}/models/draft.rb +0 -0
  342. /data/spec/{app → support}/models/dragon.rb +0 -0
  343. /data/spec/{app → support}/models/drug.rb +0 -0
  344. /data/spec/{app → support}/models/dungeon.rb +0 -0
  345. /data/spec/{app → support}/models/edit.rb +0 -0
  346. /data/spec/{app → support}/models/email.rb +0 -0
  347. /data/spec/{app → support}/models/employer.rb +0 -0
  348. /data/spec/{app → support}/models/entry.rb +0 -0
  349. /data/spec/{app → support}/models/eraser.rb +0 -0
  350. /data/spec/{app → support}/models/even.rb +0 -0
  351. /data/spec/{app → support}/models/event.rb +0 -0
  352. /data/spec/{app → support}/models/exhibition.rb +0 -0
  353. /data/spec/{app → support}/models/exhibitor.rb +0 -0
  354. /data/spec/{app → support}/models/explosion.rb +0 -0
  355. /data/spec/{app → support}/models/eye.rb +0 -0
  356. /data/spec/{app → support}/models/eye_bowl.rb +0 -0
  357. /data/spec/{app → support}/models/face.rb +0 -0
  358. /data/spec/{app → support}/models/favorite.rb +0 -0
  359. /data/spec/{app → support}/models/filesystem.rb +0 -0
  360. /data/spec/{app → support}/models/fire_hydrant.rb +0 -0
  361. /data/spec/{app → support}/models/firefox.rb +0 -0
  362. /data/spec/{app → support}/models/fish.rb +0 -0
  363. /data/spec/{app → support}/models/folder.rb +0 -0
  364. /data/spec/{app → support}/models/folder_item.rb +0 -0
  365. /data/spec/{app → support}/models/fruits.rb +0 -0
  366. /data/spec/{app → support}/models/game.rb +0 -0
  367. /data/spec/{app → support}/models/ghost.rb +0 -0
  368. /data/spec/{app → support}/models/home.rb +0 -0
  369. /data/spec/{app → support}/models/house.rb +0 -0
  370. /data/spec/{app → support}/models/html_writer.rb +0 -0
  371. /data/spec/{app → support}/models/id_key.rb +0 -0
  372. /data/spec/{app → support}/models/image.rb +0 -0
  373. /data/spec/{app → support}/models/implant.rb +0 -0
  374. /data/spec/{app → support}/models/jar.rb +0 -0
  375. /data/spec/{app → support}/models/kaleidoscope.rb +0 -0
  376. /data/spec/{app → support}/models/kangaroo.rb +0 -0
  377. /data/spec/{app → support}/models/label.rb +0 -0
  378. /data/spec/{app → support}/models/language.rb +0 -0
  379. /data/spec/{app → support}/models/lat_lng.rb +0 -0
  380. /data/spec/{app → support}/models/league.rb +0 -0
  381. /data/spec/{app → support}/models/learner.rb +0 -0
  382. /data/spec/{app → support}/models/line_item.rb +0 -0
  383. /data/spec/{app → support}/models/location.rb +0 -0
  384. /data/spec/{app → support}/models/login.rb +0 -0
  385. /data/spec/{app → support}/models/manufacturer.rb +0 -0
  386. /data/spec/{app → support}/models/meat.rb +0 -0
  387. /data/spec/{app → support}/models/membership.rb +0 -0
  388. /data/spec/{app → support}/models/message.rb +0 -0
  389. /data/spec/{app → support}/models/minim.rb +0 -0
  390. /data/spec/{app → support}/models/mixed_drink.rb +0 -0
  391. /data/spec/{app → support}/models/movie.rb +0 -0
  392. /data/spec/{app → support}/models/my_hash.rb +0 -0
  393. /data/spec/{app → support}/models/name.rb +0 -0
  394. /data/spec/{app → support}/models/name_only.rb +0 -0
  395. /data/spec/{app → support}/models/node.rb +0 -0
  396. /data/spec/{app → support}/models/note.rb +0 -0
  397. /data/spec/{app → support}/models/odd.rb +0 -0
  398. /data/spec/{app → support}/models/ordered_post.rb +0 -0
  399. /data/spec/{app → support}/models/ordered_preference.rb +0 -0
  400. /data/spec/{app → support}/models/oscar.rb +0 -0
  401. /data/spec/{app → support}/models/other_owner_object.rb +0 -0
  402. /data/spec/{app → support}/models/override.rb +0 -0
  403. /data/spec/{app → support}/models/ownable.rb +0 -0
  404. /data/spec/{app → support}/models/pack.rb +0 -0
  405. /data/spec/{app → support}/models/page.rb +0 -0
  406. /data/spec/{app → support}/models/page_question.rb +0 -0
  407. /data/spec/{app → support}/models/parent.rb +0 -0
  408. /data/spec/{app → support}/models/parent_doc.rb +0 -0
  409. /data/spec/{app → support}/models/passport.rb +0 -0
  410. /data/spec/{app → support}/models/patient.rb +0 -0
  411. /data/spec/{app → support}/models/pdf_writer.rb +0 -0
  412. /data/spec/{app → support}/models/pencil.rb +0 -0
  413. /data/spec/{app → support}/models/pet.rb +0 -0
  414. /data/spec/{app → support}/models/pet_owner.rb +0 -0
  415. /data/spec/{app → support}/models/phone.rb +0 -0
  416. /data/spec/{app → support}/models/pizza.rb +0 -0
  417. /data/spec/{app → support}/models/player.rb +0 -0
  418. /data/spec/{app → support}/models/post.rb +0 -0
  419. /data/spec/{app → support}/models/post_genre.rb +0 -0
  420. /data/spec/{app → support}/models/powerup.rb +0 -0
  421. /data/spec/{app → support}/models/preference.rb +0 -0
  422. /data/spec/{app → support}/models/princess.rb +0 -0
  423. /data/spec/{app → support}/models/product.rb +0 -0
  424. /data/spec/{app → support}/models/pronunciation.rb +0 -0
  425. /data/spec/{app → support}/models/pub.rb +0 -0
  426. /data/spec/{app → support}/models/publication/encyclopedia.rb +0 -0
  427. /data/spec/{app → support}/models/publication/review.rb +0 -0
  428. /data/spec/{app → support}/models/purchase.rb +0 -0
  429. /data/spec/{app → support}/models/question.rb +0 -0
  430. /data/spec/{app → support}/models/quiz.rb +0 -0
  431. /data/spec/{app → support}/models/rating.rb +0 -0
  432. /data/spec/{app → support}/models/record.rb +0 -0
  433. /data/spec/{app → support}/models/registry.rb +0 -0
  434. /data/spec/{app → support}/models/role.rb +0 -0
  435. /data/spec/{app → support}/models/root_category.rb +0 -0
  436. /data/spec/{app → support}/models/sandwich.rb +0 -0
  437. /data/spec/{app → support}/models/scheduler.rb +0 -0
  438. /data/spec/{app → support}/models/seo.rb +0 -0
  439. /data/spec/{app → support}/models/series.rb +0 -0
  440. /data/spec/{app → support}/models/server.rb +0 -0
  441. /data/spec/{app → support}/models/service.rb +0 -0
  442. /data/spec/{app → support}/models/shelf.rb +0 -0
  443. /data/spec/{app → support}/models/shipment_address.rb +0 -0
  444. /data/spec/{app → support}/models/shipping_container.rb +0 -0
  445. /data/spec/{app → support}/models/shipping_pack.rb +0 -0
  446. /data/spec/{app → support}/models/shop.rb +0 -0
  447. /data/spec/{app → support}/models/short_agent.rb +0 -0
  448. /data/spec/{app → support}/models/short_quiz.rb +0 -0
  449. /data/spec/{app → support}/models/simple.rb +0 -0
  450. /data/spec/{app → support}/models/slave.rb +0 -0
  451. /data/spec/{app → support}/models/song.rb +0 -0
  452. /data/spec/{app → support}/models/sound.rb +0 -0
  453. /data/spec/{app → support}/models/square.rb +0 -0
  454. /data/spec/{app → support}/models/staff.rb +0 -0
  455. /data/spec/{app → support}/models/store_as_dup_test1.rb +0 -0
  456. /data/spec/{app → support}/models/store_as_dup_test2.rb +0 -0
  457. /data/spec/{app → support}/models/store_as_dup_test3.rb +0 -0
  458. /data/spec/{app → support}/models/store_as_dup_test4.rb +0 -0
  459. /data/spec/{app → support}/models/strategy.rb +0 -0
  460. /data/spec/{app → support}/models/sub_item.rb +0 -0
  461. /data/spec/{app → support}/models/subscription.rb +0 -0
  462. /data/spec/{app → support}/models/survey.rb +0 -0
  463. /data/spec/{app → support}/models/symptom.rb +0 -0
  464. /data/spec/{app → support}/models/tag.rb +0 -0
  465. /data/spec/{app → support}/models/target.rb +0 -0
  466. /data/spec/{app → support}/models/template.rb +0 -0
  467. /data/spec/{app → support}/models/thing.rb +0 -0
  468. /data/spec/{app → support}/models/title.rb +0 -0
  469. /data/spec/{app → support}/models/topping.rb +0 -0
  470. /data/spec/{app → support}/models/track.rb +0 -0
  471. /data/spec/{app → support}/models/translation.rb +0 -0
  472. /data/spec/{app → support}/models/tree.rb +0 -0
  473. /data/spec/{app → support}/models/updatable.rb +0 -0
  474. /data/spec/{app → support}/models/user.rb +0 -0
  475. /data/spec/{app → support}/models/user_account.rb +0 -0
  476. /data/spec/{app → support}/models/validation_callback.rb +0 -0
  477. /data/spec/{app → support}/models/version.rb +0 -0
  478. /data/spec/{app → support}/models/vertex.rb +0 -0
  479. /data/spec/{app → support}/models/vet_visit.rb +0 -0
  480. /data/spec/{app → support}/models/video.rb +0 -0
  481. /data/spec/{app → support}/models/video_game.rb +0 -0
  482. /data/spec/{app → support}/models/weapon.rb +0 -0
  483. /data/spec/{app → support}/models/wiki_page.rb +0 -0
  484. /data/spec/{app → support}/models/word.rb +0 -0
  485. /data/spec/{app → support}/models/word_origin.rb +0 -0
@@ -1,73 +0,0 @@
1
- detected_distro=
2
-
3
- host_distro() {
4
- if test -z "$detected_distro"; then
5
- detected_distro=`_detect_distro`
6
- fi
7
- echo "$detected_distro"
8
- }
9
-
10
- _detect_distro() {
11
- local distro
12
- distro=
13
- if test -f /etc/debian_version; then
14
- # Debian or Ubuntu
15
- if test "`uname -m`" = aarch64; then
16
- distro=ubuntu1604-arm
17
- elif lsb_release -is |grep -q Debian; then
18
- release=`lsb_release -rs |tr -d .`
19
- # In docker, release is something like 9.11.
20
- # In evergreen, release is 9.2.
21
- release=`echo $release |sed -e 's/^9.*/92/'`
22
- distro="debian$release"
23
- elif lsb_release -is |grep -q Ubuntu; then
24
- if test "`uname -m`" = ppc64le; then
25
- release=`lsb_release -rs |tr -d .`
26
- distro="ubuntu$release-ppc"
27
- else
28
- release=`lsb_release -rs |tr -d .`
29
- distro="ubuntu$release"
30
- fi
31
- else
32
- echo 'Unknown Debian flavor' 1>&2
33
- exit 1
34
- fi
35
- elif lsb_release -is |grep -qi suse; then
36
- if test "`uname -m`" = s390x; then
37
- release=`lsb_release -rs |sed -e 's/\..*//'`
38
- distro="suse$release-s390x"
39
- else
40
- echo 'Unknown Suse arch' 1>&2
41
- exit 1
42
- fi
43
- elif test -f /etc/redhat-release; then
44
- # RHEL or CentOS
45
- if test "`uname -m`" = s390x; then
46
- distro=rhel72-s390x
47
- elif test "`uname -m`" = ppc64le; then
48
- distro=rhel71-ppc
49
- elif lsb_release >/dev/null 2>&1; then
50
- if lsb_release -is |grep -q RedHat; then
51
- release=`lsb_release -rs |tr -d .`
52
- distro="rhel$release"
53
- elif lsb_release -is |grep -q CentOS; then
54
- release=`lsb_release -rs |cut -c 1 |sed -e s/7/70/ -e s/6/62/ -e s/8/80/`
55
- distro="rhel$release"
56
- else
57
- echo 'Unknown RHEL flavor' 1>&2
58
- exit 1
59
- fi
60
- else
61
- echo lsb_release missing, using /etc/redhat-release 1>&2
62
- release=`grep -o 'release [0-9]' /etc/redhat-release |awk '{print $2}'`
63
- release=`echo $release |sed -e s/7/70/ -e s/6/62/ -e s/8/80/`
64
- distro=rhel$release
65
- fi
66
- else
67
- lsb_release -a
68
- echo 'Unknown distro' 1>&2
69
- exit 1
70
- fi
71
- echo "Detected distro: $distro" 1>&2
72
- echo $distro
73
- }
@@ -1,367 +0,0 @@
1
- # This file contains functions pertaining to downloading, starting and
2
- # configuring a MongoDB server.
3
-
4
- set_fcv() {
5
- if test -n "$FCV"; then
6
- mongo --eval 'assert.commandWorked(db.adminCommand( { setFeatureCompatibilityVersion: "'"$FCV"'" } ));' "$MONGODB_URI"
7
- mongo --quiet --eval 'db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )' |grep "version.*$FCV"
8
- fi
9
- }
10
-
11
- add_uri_option() {
12
- opt=$1
13
-
14
- if ! echo $MONGODB_URI |sed -e s,//,, |grep -q /; then
15
- MONGODB_URI="$MONGODB_URI/"
16
- fi
17
-
18
- if ! echo $MONGODB_URI |grep -q '?'; then
19
- MONGODB_URI="$MONGODB_URI?"
20
- fi
21
-
22
- MONGODB_URI="$MONGODB_URI&$opt"
23
- }
24
-
25
- prepare_server() {
26
- arch=$1
27
-
28
- if test -n "$USE_OPT_MONGODB"; then
29
- export BINDIR=/opt/mongodb/bin
30
- export PATH=$BINDIR:$PATH
31
- return
32
- fi
33
-
34
- if test "$MONGODB_VERSION" = latest; then
35
- # Test on the most recent published 4.3 release.
36
- # https://jira.mongodb.org/browse/RUBY-1724
37
- echo 'Using "latest" server is not currently implemented' 1>&2
38
- exit 1
39
- else
40
- download_version="$MONGODB_VERSION"
41
- fi
42
-
43
- url=`$(dirname $0)/get-mongodb-download-url $download_version $arch`
44
-
45
- prepare_server_from_url $url
46
- }
47
-
48
- prepare_server_from_url() {
49
- url=$1
50
-
51
- mongodb_dir="$MONGO_ORCHESTRATION_HOME"/mdb
52
- mkdir -p "$mongodb_dir"
53
- curl --retry 3 $url |tar xz -C "$mongodb_dir" -f -
54
- BINDIR="$mongodb_dir"/`basename $url |sed -e s/.tgz//`/bin
55
- export PATH="$BINDIR":$PATH
56
- }
57
-
58
- install_mlaunch_virtualenv() {
59
- python2 -V || true
60
- if ! python2 -m virtualenv -h >/dev/null; then
61
- # Current virtualenv fails with
62
- # https://github.com/pypa/virtualenv/issues/1630
63
- python2 -m pip install 'virtualenv<20' --user
64
- fi
65
- if test "$USE_SYSTEM_PYTHON_PACKAGES" = 1 &&
66
- python2 -m pip list |grep mtools-legacy
67
- then
68
- # Use the existing mtools-legacy
69
- :
70
- else
71
- venvpath="$MONGO_ORCHESTRATION_HOME"/venv
72
- python2 -m virtualenv -p python2 $venvpath
73
- . $venvpath/bin/activate
74
- pip install 'mtools-legacy[mlaunch]'
75
- fi
76
- }
77
-
78
- install_mlaunch_pip() {
79
- if test -n "$USE_OPT_MONGODB" && which mlaunch >/dev/null 2>&1; then
80
- # mlaunch is preinstalled in the docker image, do not install it here
81
- return
82
- fi
83
-
84
- python -V || true
85
- python3 -V || true
86
- pythonpath="$MONGO_ORCHESTRATION_HOME"/python
87
- pip install -t "$pythonpath" 'mtools-legacy[mlaunch]'
88
- export PATH="$pythonpath/bin":$PATH
89
- export PYTHONPATH="$pythonpath"
90
- }
91
-
92
- install_mlaunch_git() {
93
- repo=$1
94
- branch=$2
95
- python -V || true
96
- python3 -V || true
97
- which pip || true
98
- which pip3 || true
99
-
100
- if false; then
101
- if ! virtualenv --version; then
102
- python3 `which pip3` install --user virtualenv
103
- export PATH=$HOME/.local/bin:$PATH
104
- virtualenv --version
105
- fi
106
-
107
- venvpath="$MONGO_ORCHESTRATION_HOME"/venv
108
- virtualenv -p python3 $venvpath
109
- . $venvpath/bin/activate
110
-
111
- pip3 install psutil pymongo
112
-
113
- git clone $repo mlaunch
114
- cd mlaunch
115
- git checkout origin/$branch
116
- python3 setup.py install
117
- cd ..
118
- else
119
- pip install --user 'virtualenv==13'
120
- export PATH=$HOME/.local/bin:$PATH
121
-
122
- venvpath="$MONGO_ORCHESTRATION_HOME"/venv
123
- virtualenv $venvpath
124
- . $venvpath/bin/activate
125
-
126
- pip install psutil pymongo
127
-
128
- git clone $repo mlaunch
129
- (cd mlaunch &&
130
- git checkout origin/$branch &&
131
- python setup.py install
132
- )
133
- fi
134
- }
135
-
136
- # This function sets followong global variables:
137
- # server_cert_path
138
- # server_ca_path
139
- # server_client_cert_path
140
- #
141
- # These variables are used later to connect to processes via mongo client.
142
- calculate_server_args() {
143
- local mongo_version=`echo $MONGODB_VERSION |tr -d .`
144
-
145
- if test -z "$mongo_version"; then
146
- echo "$MONGODB_VERSION must be set and not contain only dots" 1>&2
147
- exit 3
148
- fi
149
-
150
- if test $mongo_version = latest; then
151
- mongo_version=49
152
- fi
153
-
154
- local args="--setParameter enableTestCommands=1"
155
-
156
- if test $mongo_version -ge 50; then
157
- args="$args --setParameter acceptApiVersion2=1"
158
- elif test $mongo_version -ge 47; then
159
- args="$args --setParameter acceptAPIVersion2=1"
160
- fi
161
-
162
- # diagnosticDataCollectionEnabled is a mongod-only parameter on server 3.2,
163
- # and mlaunch does not support specifying mongod-only parameters:
164
- # https://github.com/rueckstiess/mtools/issues/696
165
- # Pass it to 3.4 and newer servers where it is accepted by all daemons.
166
- if test $mongo_version -ge 34; then
167
- args="$args --setParameter diagnosticDataCollectionEnabled=false"
168
- fi
169
- local uri_options=
170
- if test "$TOPOLOGY" = replica-set; then
171
- args="$args --replicaset --name test-rs --nodes 2 --arbiter"
172
- export HAVE_ARBITER=1
173
- elif test "$TOPOLOGY" = sharded-cluster; then
174
- args="$args --replicaset --nodes 2 --sharded 1 --name test-rs"
175
- if test -z "$SINGLE_MONGOS"; then
176
- args="$args --mongos 2"
177
- fi
178
- elif test "$TOPOLOGY" = standalone; then
179
- args="$args --single"
180
- elif test "$TOPOLOGY" = load-balanced; then
181
- args="$args --replicaset --nodes 2 --sharded 1 --name test-rs --port 27117"
182
- if test -z "$MRSS_ROOT"; then
183
- echo "Please set MRSS_ROOT" 1>&2
184
- exit 2
185
- fi
186
- if test -n "$SINGLE_MONGOS"; then
187
- haproxy_config=$MRSS_ROOT/share/haproxy-1.conf
188
- else
189
- args="$args --mongos 2"
190
- haproxy_config=$MRSS_ROOT/share/haproxy-2.conf
191
- fi
192
- uri_options="$uri_options&loadBalanced=true"
193
- else
194
- echo "Unknown topology: $TOPOLOGY" 1>&2
195
- exit 1
196
- fi
197
- if test -n "$MMAPV1"; then
198
- args="$args --storageEngine mmapv1 --smallfiles --noprealloc"
199
- uri_options="$uri_options&retryReads=false&retryWrites=false"
200
- fi
201
- if test "$AUTH" = auth; then
202
- args="$args --auth --username bob --password pwd123"
203
- elif test "$AUTH" = x509; then
204
- args="$args --auth --username bootstrap --password bootstrap"
205
- elif echo "$AUTH" |grep -q ^aws; then
206
- args="$args --auth --username bootstrap --password bootstrap"
207
- args="$args --setParameter authenticationMechanisms=MONGODB-AWS,SCRAM-SHA-1,SCRAM-SHA-256"
208
- uri_options="$uri_options&authMechanism=MONGODB-AWS&authSource=\$external"
209
- fi
210
-
211
- if test -n "$OCSP"; then
212
- if test -z "$OCSP_ALGORITHM"; then
213
- echo "OCSP_ALGORITHM must be set if OCSP is set" 1>&2
214
- exit 1
215
- fi
216
- fi
217
-
218
- if test "$SSL" = ssl || test -n "$OCSP_ALGORITHM"; then
219
- if test -n "$OCSP_ALGORITHM"; then
220
- if test "$OCSP_MUST_STAPLE" = 1; then
221
- server_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server-mustStaple.pem
222
- else
223
- server_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server.pem
224
- fi
225
- server_ca_path=spec/support/ocsp/$OCSP_ALGORITHM/ca.crt
226
- server_client_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server.pem
227
- else
228
- server_cert_path=spec/support/certificates/server-second-level-bundle.pem
229
- server_ca_path=spec/support/certificates/ca.crt
230
- server_client_cert_path=spec/support/certificates/client.pem
231
- fi
232
-
233
- if test -n "$OCSP_ALGORITHM"; then
234
- client_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server.pem
235
- elif test "$AUTH" = x509; then
236
- client_cert_path=spec/support/certificates/client-x509.pem
237
-
238
- uri_options="$uri_options&authMechanism=MONGODB-X509"
239
- elif echo $RVM_RUBY |grep -q jruby; then
240
- # JRuby does not grok chained certificate bundles -
241
- # https://github.com/jruby/jruby-openssl/issues/181
242
- client_cert_path=spec/support/certificates/client.pem
243
- else
244
- client_cert_path=spec/support/certificates/client-second-level-bundle.pem
245
- fi
246
-
247
- uri_options="$uri_options&tls=true&"\
248
- "tlsCAFile=$server_ca_path&"\
249
- "tlsCertificateKeyFile=$client_cert_path"
250
-
251
- args="$args --sslMode requireSSL"\
252
- " --sslPEMKeyFile $server_cert_path"\
253
- " --sslCAFile $server_ca_path"\
254
- " --sslClientCertificate $server_client_cert_path"
255
- fi
256
-
257
- # Docker forwards ports to the external interface, not to the loopback.
258
- # Hence we must bind to all interfaces here.
259
- if test -n "$BIND_ALL"; then
260
- args="$args --bind_ip_all"
261
- fi
262
-
263
- # MongoDB servers pre-4.2 do not enable zlib compression by default
264
- if test "$COMPRESSOR" = snappy; then
265
- args="$args --networkMessageCompressors snappy"
266
- elif test "$COMPRESSOR" = zlib; then
267
- args="$args --networkMessageCompressors zlib"
268
- fi
269
-
270
- if test -n "$OCSP_ALGORITHM" || test -n "$OCSP_VERIFIER"; then
271
- python3 -m pip install asn1crypto oscrypto flask
272
- fi
273
-
274
- local ocsp_args=
275
- if test -n "$OCSP_ALGORITHM"; then
276
- if test -z "$server_ca_path"; then
277
- echo "server_ca_path must have been set" 1>&2
278
- exit 1
279
- fi
280
- ocsp_args="--ca_file $server_ca_path"
281
- if test "$OCSP_DELEGATE" = 1; then
282
- ocsp_args="$ocsp_args \
283
- --ocsp_responder_cert spec/support/ocsp/$OCSP_ALGORITHM/ocsp-responder.crt \
284
- --ocsp_responder_key spec/support/ocsp/$OCSP_ALGORITHM/ocsp-responder.key \
285
- "
286
- else
287
- ocsp_args="$ocsp_args \
288
- --ocsp_responder_cert spec/support/ocsp/$OCSP_ALGORITHM/ca.crt \
289
- --ocsp_responder_key spec/support/ocsp/$OCSP_ALGORITHM/ca.key \
290
- "
291
- fi
292
- if test -n "$OCSP_STATUS"; then
293
- ocsp_args="$ocsp_args --fault $OCSP_STATUS"
294
- fi
295
- fi
296
-
297
- OCSP_ARGS="$ocsp_args"
298
- SERVER_ARGS="$args"
299
- URI_OPTIONS="$uri_options"
300
- }
301
-
302
- launch_ocsp_mock() {
303
- if test -n "$OCSP_ARGS"; then
304
- # Bind to 0.0.0.0 for Docker
305
- python3 spec/support/ocsp/ocsp_mock.py $OCSP_ARGS -b 0.0.0.0 -p 8100 &
306
- OCSP_MOCK_PID=$!
307
- fi
308
- }
309
-
310
- launch_server() {
311
- local dbdir="$1"
312
- python -m mtools.mlaunch.mlaunch --dir "$dbdir" --binarypath "$BINDIR" $SERVER_ARGS
313
-
314
- if test "$TOPOLOGY" = sharded-cluster && test $MONGODB_VERSION = 3.6; then
315
- # On 3.6 server the sessions collection is not immediately available,
316
- # so we run the refreshLogicalSessionCacheNow command on the config server
317
- # and again on each mongos in order for the mongoses
318
- # to correctly report logicalSessionTimeoutMinutes.
319
- mongos_regex="\s*mongos\s+([0-9]+)\s+running\s+[0-9]+"
320
- config_server_regex="\s*config\sserver\s+([0-9]+)\s+running\s+[0-9]+"
321
- config_server=""
322
- mongoses=()
323
- if test "$AUTH" = auth
324
- then
325
- base_url="mongodb://bob:pwd123@localhost"
326
- else
327
- base_url="mongodb://localhost"
328
- fi
329
- if test "$SSL" = "ssl"
330
- then
331
- mongo_command="${BINDIR}/mongo --ssl --sslPEMKeyFile $server_cert_path --sslCAFile $server_ca_path"
332
- else
333
- mongo_command="${BINDIR}/mongo"
334
- fi
335
-
336
- while read -r line
337
- do
338
- if [[ $line =~ $config_server_regex ]]
339
- then
340
- port="${BASH_REMATCH[1]}"
341
- config_server="${base_url}:${port}"
342
- fi
343
- if [[ $line =~ $mongos_regex ]]
344
- then
345
- port="${BASH_REMATCH[1]}"
346
- mongoses+=("${base_url}:${port}")
347
- fi
348
- done < <(python -m mtools.mlaunch.mlaunch list --dir "$dbdir" --binarypath "$BINDIR")
349
-
350
- if [ -n "$config_server" ]; then
351
- ${mongo_command} "$config_server" --eval 'db.adminCommand("refreshLogicalSessionCacheNow")'
352
- for mongos in ${mongoses[*]}
353
- do
354
- ${mongo_command} "$mongos" --eval 'db.adminCommand("refreshLogicalSessionCacheNow")'
355
- done
356
- fi
357
- fi
358
-
359
- if test "$TOPOLOGY" = load-balanced; then
360
- if test -z "$haproxy_config"; then
361
- echo haproxy_config should have been set 1>&2
362
- exit 3
363
- fi
364
-
365
- haproxy -D -f $haproxy_config -p $mongodb_dir/haproxy.pid
366
- fi
367
- }
@@ -1,131 +0,0 @@
1
- TOOLCHAIN_VERSION=289d4bec7c61e88000cea582c05fd8073b932122
2
-
3
- set_env_java() {
4
- ls -l /opt || true
5
- ls -l /usr/lib/jvm || true
6
-
7
- # Use toolchain java if it exists
8
- if [ -f /opt/java/jdk8/bin/java ]; then
9
- export JAVACMD=/opt/java/jdk8/bin/java
10
- #export PATH=$PATH:/opt/java/jdk8/bin
11
- fi
12
-
13
- # ppc64le has it in a different place
14
- if test -z "$JAVACMD" && [ -f /usr/lib/jvm/java-1.8.0/bin/java ]; then
15
- export JAVACMD=/usr/lib/jvm/java-1.8.0/bin/java
16
- #export PATH=$PATH:/usr/lib/jvm/java-1.8.0/bin
17
- fi
18
-
19
- if true; then
20
- # newer
21
- # rhel71-ppc, https://jira.mongodb.org/browse/BUILD-9231
22
- if test -z "$JAVACMD" &&
23
- (ls /opt/java || true) |grep -q java-1.8.0-openjdk-1.8.0 &&
24
- test -f /opt/java/java-1.8.0-openjdk-1.8.0*/bin/java;
25
- then
26
- path=$(cd /opt/java && ls -d java-1.8.0-openjdk-1.8.0* |head -n 1)
27
- export JAVACMD=/opt/java/"$path"/bin/java
28
- fi
29
- else
30
- # older
31
- # rhel71-ppc seems to have an /opt/java/jdk8/bin/java but it doesn't work
32
- if test -n "$JAVACMD" && ! exec $JAVACMD -version; then
33
- JAVACMD=
34
- # we will try the /usr/lib/jvm then
35
- fi
36
- fi
37
-
38
- if test -n "$JAVACMD"; then
39
- eval $JAVACMD -version
40
- elif which java 2>/dev/null; then
41
- java -version
42
- else
43
- echo No java runtime found
44
- fi
45
- }
46
-
47
- set_env_ruby() {
48
- if test -z "$RVM_RUBY"; then
49
- echo "Empty RVM_RUBY, aborting"
50
- exit 2
51
- fi
52
-
53
- #ls -l /opt
54
-
55
- # Necessary for jruby
56
- set_env_java
57
-
58
- if [ "$RVM_RUBY" == "ruby-head" ]; then
59
- # When we use ruby-head, we do not install the Ruby toolchain.
60
- # But we still need Python 3.6+ to run mlaunch.
61
- # Since the ruby-head tests are run on ubuntu1604, we can use the
62
- # globally installed Python toolchain.
63
- #export PATH=/opt/python/3.7/bin:$PATH
64
-
65
- # 12.04, 14.04 and 16.04 are good
66
- curl --retry 3 -fL http://rubies.travis-ci.org/ubuntu/`lsb_release -rs`/x86_64/ruby-head.tar.bz2 |tar xfj -
67
- # TODO adjust gem path?
68
- export PATH=`pwd`/ruby-head/bin:`pwd`/ruby-head/lib/ruby/gems/2.6.0/bin:$PATH
69
- ruby --version
70
- ruby --version |grep dev
71
- elif test "$SYSTEM_RUBY" = 1; then
72
- # Nothing
73
- :
74
- else
75
- if test "$USE_OPT_TOOLCHAIN" = 1; then
76
- # Nothing, also PATH is already set
77
- :
78
- elif true; then
79
-
80
- # For testing toolchains:
81
- #toolchain_url=https://s3.amazonaws.com//mciuploads/mongo-ruby-toolchain/`host_distro`/f11598d091441ffc8d746aacfdc6c26741a3e629/mongo_ruby_driver_toolchain_`host_distro |tr - _`_patch_f11598d091441ffc8d746aacfdc6c26741a3e629_5e46f2793e8e866f36eda2c5_20_02_14_19_18_18.tar.gz
82
- toolchain_url=http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/ruby-toolchain-`host_distro`-$TOOLCHAIN_VERSION.tar.xz
83
- curl --retry 3 -fL $toolchain_url |tar Jxf -
84
- export PATH=`pwd`/rubies/$RVM_RUBY/bin:$PATH
85
- #export PATH=`pwd`/rubies/python/3/bin:$PATH
86
-
87
- # Attempt to get bundler to report all errors - so far unsuccessful
88
- #curl --retry 3 -o bundler-openssl.diff https://github.com/bundler/bundler/compare/v2.0.1...p-mongo:report-errors.diff
89
- #find . -path \*/lib/bundler/fetcher.rb -exec patch {} bundler-openssl.diff \;
90
-
91
- else
92
-
93
- # Normal operation
94
- if ! test -d $HOME/.rubies/$RVM_RUBY/bin; then
95
- echo "Ruby directory does not exist: $HOME/.rubies/$RVM_RUBY/bin" 1>&2
96
- echo "Contents of /opt:" 1>&2
97
- ls -l /opt 1>&2 || true
98
- echo ".rubies symlink:" 1>&2
99
- ls -ld $HOME/.rubies 1>&2 || true
100
- echo "Our rubies:" 1>&2
101
- ls -l $HOME/.rubies 1>&2 || true
102
- exit 2
103
- fi
104
- export PATH=$HOME/.rubies/$RVM_RUBY/bin:$PATH
105
-
106
- fi
107
-
108
- ruby --version
109
-
110
- # Ensure we're using the right ruby
111
- ruby_name=`echo $RVM_RUBY |awk -F- '{print $1}'`
112
- ruby_version=`echo $RVM_RUBY |awk -F- '{print $2}' |cut -c 1-3`
113
-
114
- ruby -v |fgrep $ruby_name
115
- ruby -v |fgrep $ruby_version
116
-
117
- # We shouldn't need to update rubygems, and there is value in
118
- # testing on whatever rubygems came with each supported ruby version
119
- #echo 'updating rubygems'
120
- #gem update --system
121
-
122
- # Only install bundler when not using ruby-head.
123
- # ruby-head comes with bundler and gem complains
124
- # because installing bundler would overwrite the bundler binary.
125
- # We now install bundler in the toolchain, hence nothing needs to be done
126
- # in the tests.
127
- if false && echo "$RVM_RUBY" |grep -q jruby; then
128
- gem install bundler -v '<2'
129
- fi
130
- fi
131
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes