mongoid 7.1.11 → 7.2.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/Rakefile +11 -30
  5. data/lib/config/locales/en.yml +37 -14
  6. data/lib/mongoid/association/depending.rb +1 -6
  7. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +1 -1
  8. data/lib/mongoid/association/many.rb +3 -3
  9. data/lib/mongoid/association/proxy.rb +1 -1
  10. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
  11. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +1 -1
  12. data/lib/mongoid/association/referenced/has_many/enumerable.rb +37 -2
  13. data/lib/mongoid/association/referenced/has_many/proxy.rb +9 -2
  14. data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
  15. data/lib/mongoid/association/referenced/has_one/proxy.rb +1 -6
  16. data/lib/mongoid/atomic/modifiers.rb +1 -1
  17. data/lib/mongoid/attributes/dynamic.rb +1 -1
  18. data/lib/mongoid/attributes.rb +1 -8
  19. data/lib/mongoid/clients/factory.rb +17 -0
  20. data/lib/mongoid/composable.rb +1 -0
  21. data/lib/mongoid/config/environment.rb +1 -9
  22. data/lib/mongoid/config.rb +3 -0
  23. data/lib/mongoid/contextual/atomic.rb +2 -7
  24. data/lib/mongoid/contextual/mongo.rb +23 -4
  25. data/lib/mongoid/contextual/none.rb +0 -3
  26. data/lib/mongoid/copyable.rb +2 -2
  27. data/lib/mongoid/criteria/queryable/key.rb +1 -1
  28. data/lib/mongoid/criteria/queryable/mergeable.rb +2 -2
  29. data/lib/mongoid/criteria/queryable/selectable.rb +23 -8
  30. data/lib/mongoid/criteria/queryable/selector.rb +7 -3
  31. data/lib/mongoid/criteria/queryable/storable.rb +7 -7
  32. data/lib/mongoid/criteria.rb +58 -8
  33. data/lib/mongoid/document.rb +19 -9
  34. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +25 -0
  35. data/lib/mongoid/errors/invalid_elem_match_operator.rb +33 -0
  36. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +26 -0
  37. data/lib/mongoid/errors/invalid_expression_operator.rb +28 -0
  38. data/lib/mongoid/errors/invalid_field_operator.rb +33 -0
  39. data/lib/mongoid/errors/invalid_query.rb +41 -0
  40. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  41. data/lib/mongoid/errors.rb +7 -2
  42. data/lib/mongoid/factory.rb +27 -10
  43. data/lib/mongoid/fields/validators/macro.rb +22 -9
  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/tasks/database.rb +1 -1
  79. data/lib/mongoid/traversable.rb +111 -4
  80. data/lib/mongoid/validatable/associated.rb +1 -1
  81. data/lib/mongoid/validatable/presence.rb +3 -3
  82. data/lib/mongoid/validatable/uniqueness.rb +1 -1
  83. data/lib/mongoid/version.rb +1 -1
  84. data/lib/mongoid.rb +23 -1
  85. data/lib/rails/generators/mongoid/config/config_generator.rb +1 -8
  86. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +1 -1
  87. data/spec/integration/app_spec.rb +88 -178
  88. data/spec/integration/associations/embedded_spec.rb +94 -0
  89. data/spec/integration/associations/has_many_spec.rb +39 -46
  90. data/spec/integration/associations/has_one_spec.rb +39 -46
  91. data/spec/integration/associations/nested_attributes_assignment_spec.rb +116 -0
  92. data/spec/integration/atomic/modifiers_spec.rb +117 -0
  93. data/spec/integration/discriminator_key_spec.rb +354 -0
  94. data/spec/integration/discriminator_value_spec.rb +207 -0
  95. data/spec/integration/document_spec.rb +0 -21
  96. data/spec/integration/{matchable_spec.rb → matcher_examples_spec.rb} +120 -41
  97. data/spec/integration/matcher_operator_data/all.yml +140 -0
  98. data/spec/integration/matcher_operator_data/and.yml +93 -0
  99. data/spec/integration/matcher_operator_data/elem_match.yml +363 -0
  100. data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
  101. data/spec/integration/matcher_operator_data/eq.yml +191 -0
  102. data/spec/integration/matcher_operator_data/exists.yml +213 -0
  103. data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
  104. data/spec/integration/matcher_operator_data/gt.yml +132 -0
  105. data/spec/integration/matcher_operator_data/gte.yml +132 -0
  106. data/spec/integration/matcher_operator_data/implicit.yml +331 -0
  107. data/spec/integration/matcher_operator_data/implicit_traversal.yml +16 -0
  108. data/spec/integration/matcher_operator_data/in.yml +194 -0
  109. data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
  110. data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
  111. data/spec/integration/matcher_operator_data/lt.yml +132 -0
  112. data/spec/integration/matcher_operator_data/lte.yml +132 -0
  113. data/spec/integration/matcher_operator_data/multiple.yml +29 -0
  114. data/spec/integration/matcher_operator_data/ne.yml +150 -0
  115. data/spec/integration/matcher_operator_data/nin.yml +114 -0
  116. data/spec/integration/matcher_operator_data/nor.yml +126 -0
  117. data/spec/integration/matcher_operator_data/not.yml +196 -0
  118. data/spec/integration/matcher_operator_data/or.yml +137 -0
  119. data/spec/integration/matcher_operator_data/regex.yml +174 -0
  120. data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
  121. data/spec/integration/matcher_operator_data/size.yml +174 -0
  122. data/spec/integration/matcher_operator_spec.rb +100 -0
  123. data/spec/integration/matcher_spec.rb +189 -0
  124. data/spec/integration/server_query_spec.rb +142 -0
  125. data/spec/lite_spec_helper.rb +7 -7
  126. data/spec/mongoid/association/depending_spec.rb +78 -26
  127. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +0 -50
  128. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +37 -17
  129. data/spec/mongoid/association/embedded/embeds_many_models.rb +1 -0
  130. data/spec/mongoid/association/embedded/embeds_one_models.rb +1 -0
  131. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +0 -17
  132. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +460 -186
  133. data/spec/mongoid/association/referenced/has_many_models.rb +9 -0
  134. data/spec/mongoid/association/referenced/has_one_models.rb +9 -0
  135. data/spec/mongoid/atomic/modifiers_spec.rb +47 -0
  136. data/spec/mongoid/atomic/paths_spec.rb +0 -41
  137. data/spec/mongoid/atomic_spec.rb +23 -0
  138. data/spec/mongoid/attributes/nested_spec.rb +1 -1
  139. data/spec/mongoid/attributes_spec.rb +0 -241
  140. data/spec/mongoid/clients/factory_spec.rb +35 -9
  141. data/spec/mongoid/clients/options_spec.rb +3 -11
  142. data/spec/mongoid/clients/sessions_spec.rb +1 -6
  143. data/spec/mongoid/config/environment_spec.rb +8 -86
  144. data/spec/mongoid/config_spec.rb +28 -0
  145. data/spec/mongoid/contextual/atomic_spec.rb +29 -81
  146. data/spec/mongoid/contextual/geo_near_spec.rb +1 -1
  147. data/spec/mongoid/contextual/mongo_spec.rb +70 -16
  148. data/spec/mongoid/copyable_spec.rb +153 -1
  149. data/spec/mongoid/copyable_spec_models.rb +14 -0
  150. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -36
  151. data/spec/mongoid/criteria/queryable/selectable_spec.rb +84 -82
  152. data/spec/mongoid/criteria_spec.rb +204 -43
  153. data/spec/mongoid/document_query_spec.rb +0 -51
  154. data/spec/mongoid/document_spec.rb +90 -36
  155. data/spec/mongoid/errors/delete_restriction_spec.rb +1 -1
  156. data/spec/mongoid/errors/mongoid_error_spec.rb +8 -20
  157. data/spec/mongoid/factory_spec.rb +261 -28
  158. data/spec/mongoid/fields_spec.rb +48 -2
  159. data/spec/mongoid/findable_spec.rb +32 -0
  160. data/spec/mongoid/indexable_spec.rb +28 -2
  161. data/spec/mongoid/inspectable_spec.rb +29 -2
  162. data/spec/mongoid/interceptable_spec.rb +2 -2
  163. data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +259 -0
  164. data/spec/mongoid/matcher/extract_attribute_spec.rb +47 -0
  165. data/spec/mongoid/persistable/creatable_spec.rb +108 -25
  166. data/spec/mongoid/persistable/deletable_spec.rb +86 -0
  167. data/spec/mongoid/persistable/savable_spec.rb +174 -16
  168. data/spec/mongoid/persistable/settable_spec.rb +0 -30
  169. data/spec/mongoid/persistable/updatable_spec.rb +0 -2
  170. data/spec/mongoid/persistable_spec.rb +2 -2
  171. data/spec/mongoid/query_cache_middleware_spec.rb +16 -3
  172. data/spec/mongoid/query_cache_spec.rb +442 -41
  173. data/spec/mongoid/reloadable_spec.rb +72 -0
  174. data/spec/mongoid/serializable_spec.rb +21 -3
  175. data/spec/mongoid/traversable_spec.rb +1100 -0
  176. data/spec/spec_helper.rb +3 -5
  177. data/spec/support/child_process_helper.rb +79 -0
  178. data/spec/support/constraints.rb +250 -0
  179. data/spec/support/helpers.rb +1 -1
  180. data/spec/support/lite_constraints.rb +22 -0
  181. data/spec/{app → support}/models/account.rb +0 -0
  182. data/spec/{app → support}/models/acolyte.rb +0 -0
  183. data/spec/{app → support}/models/actor.rb +1 -1
  184. data/spec/{app → support}/models/actress.rb +0 -0
  185. data/spec/{app → support}/models/address.rb +0 -4
  186. data/spec/{app → support}/models/address_component.rb +0 -0
  187. data/spec/{app → support}/models/address_number.rb +0 -0
  188. data/spec/{app → support}/models/agency.rb +0 -0
  189. data/spec/{app → support}/models/agent.rb +0 -0
  190. data/spec/{app → support}/models/album.rb +0 -0
  191. data/spec/{app → support}/models/alert.rb +0 -0
  192. data/spec/{app → support}/models/animal.rb +0 -0
  193. data/spec/{app → support}/models/answer.rb +0 -0
  194. data/spec/{app → support}/models/appointment.rb +0 -0
  195. data/spec/support/models/armrest.rb +10 -0
  196. data/spec/{app → support}/models/array_field.rb +0 -0
  197. data/spec/{app → support}/models/article.rb +0 -0
  198. data/spec/{app → support}/models/artist.rb +0 -0
  199. data/spec/{app → support}/models/artwork.rb +0 -0
  200. data/spec/{app → support}/models/audio.rb +0 -0
  201. data/spec/{app → support}/models/augmentation.rb +0 -0
  202. data/spec/{app → support}/models/author.rb +0 -0
  203. data/spec/{app → support}/models/baby.rb +0 -0
  204. data/spec/{app → support}/models/band.rb +0 -0
  205. data/spec/{app → support}/models/bar.rb +0 -0
  206. data/spec/{app → support}/models/basic.rb +0 -0
  207. data/spec/{app → support}/models/bed.rb +0 -0
  208. data/spec/{app → support}/models/big_palette.rb +0 -0
  209. data/spec/{app → support}/models/birthday.rb +0 -0
  210. data/spec/{app → support}/models/bomb.rb +0 -0
  211. data/spec/{app → support}/models/book.rb +0 -0
  212. data/spec/{app → support}/models/breed.rb +0 -0
  213. data/spec/{app → support}/models/browser.rb +1 -1
  214. data/spec/{app → support}/models/building.rb +0 -0
  215. data/spec/{app → support}/models/building_address.rb +0 -0
  216. data/spec/{app → support}/models/bus.rb +0 -0
  217. data/spec/{app → support}/models/business.rb +0 -0
  218. data/spec/{app → support}/models/callback_test.rb +0 -0
  219. data/spec/{app → support}/models/canvas.rb +1 -1
  220. data/spec/{app → support}/models/car.rb +0 -0
  221. data/spec/{app → support}/models/cat.rb +0 -0
  222. data/spec/{app → support}/models/category.rb +0 -0
  223. data/spec/{app → support}/models/child.rb +0 -0
  224. data/spec/{app → support}/models/child_doc.rb +0 -0
  225. data/spec/{app → support}/models/church.rb +0 -0
  226. data/spec/{app → support}/models/circle.rb +0 -0
  227. data/spec/{app → support}/models/circuit.rb +0 -0
  228. data/spec/{app → support}/models/circus.rb +0 -0
  229. data/spec/{app → support}/models/code.rb +0 -0
  230. data/spec/{app → support}/models/coding/pull_request.rb +0 -0
  231. data/spec/{app → support}/models/coding.rb +1 -1
  232. data/spec/{app → support}/models/comment.rb +0 -0
  233. data/spec/{app → support}/models/company.rb +0 -0
  234. data/spec/{app → support}/models/consumption_period.rb +0 -0
  235. data/spec/{app → support}/models/contextable_item.rb +0 -0
  236. data/spec/{app → support}/models/contractor.rb +0 -0
  237. data/spec/{app → support}/models/cookie.rb +0 -0
  238. data/spec/{app → support}/models/country_code.rb +0 -0
  239. data/spec/{app → support}/models/courier_job.rb +0 -0
  240. data/spec/support/models/crate.rb +13 -0
  241. data/spec/support/models/deed.rb +8 -0
  242. data/spec/{app → support}/models/definition.rb +0 -0
  243. data/spec/{app → support}/models/delegating_patient.rb +0 -0
  244. data/spec/{app → support}/models/description.rb +0 -0
  245. data/spec/{app → support}/models/dictionary.rb +0 -6
  246. data/spec/{app → support}/models/division.rb +0 -0
  247. data/spec/{app → support}/models/doctor.rb +0 -0
  248. data/spec/{app → support}/models/dog.rb +0 -0
  249. data/spec/{app → support}/models/dokument.rb +0 -0
  250. data/spec/{app → support}/models/draft.rb +0 -0
  251. data/spec/{app → support}/models/dragon.rb +0 -0
  252. data/spec/{app → support}/models/driver.rb +1 -1
  253. data/spec/{app → support}/models/drug.rb +0 -0
  254. data/spec/{app → support}/models/dungeon.rb +0 -0
  255. data/spec/{app → support}/models/edit.rb +0 -0
  256. data/spec/{app → support}/models/email.rb +0 -0
  257. data/spec/{app → support}/models/employer.rb +0 -0
  258. data/spec/{app → support}/models/entry.rb +0 -0
  259. data/spec/{app → support}/models/eraser.rb +0 -0
  260. data/spec/{app → support}/models/even.rb +0 -0
  261. data/spec/{app → support}/models/event.rb +0 -0
  262. data/spec/{app → support}/models/exhibition.rb +0 -0
  263. data/spec/{app → support}/models/exhibitor.rb +0 -0
  264. data/spec/{app → support}/models/explosion.rb +0 -0
  265. data/spec/{app → support}/models/eye.rb +0 -0
  266. data/spec/{app → support}/models/eye_bowl.rb +0 -0
  267. data/spec/{app → support}/models/face.rb +0 -0
  268. data/spec/{app → support}/models/favorite.rb +0 -0
  269. data/spec/{app → support}/models/filesystem.rb +0 -0
  270. data/spec/{app → support}/models/fire_hydrant.rb +0 -0
  271. data/spec/{app → support}/models/firefox.rb +0 -0
  272. data/spec/{app → support}/models/fish.rb +0 -0
  273. data/spec/{app → support}/models/folder.rb +0 -0
  274. data/spec/{app → support}/models/folder_item.rb +0 -0
  275. data/spec/{app → support}/models/fruits.rb +0 -0
  276. data/spec/{app → support}/models/game.rb +0 -0
  277. data/spec/{app → support}/models/ghost.rb +0 -0
  278. data/spec/support/models/guitar.rb +5 -0
  279. data/spec/{app → support}/models/home.rb +0 -0
  280. data/spec/{app → support}/models/house.rb +0 -0
  281. data/spec/{app → support}/models/html_writer.rb +0 -0
  282. data/spec/{app → support}/models/id_key.rb +0 -0
  283. data/spec/support/models/idnodef.rb +8 -0
  284. data/spec/{app → support}/models/image.rb +0 -0
  285. data/spec/{app → support}/models/implant.rb +0 -0
  286. data/spec/support/models/instrument.rb +9 -0
  287. data/spec/{app → support}/models/item.rb +1 -1
  288. data/spec/{app → support}/models/jar.rb +0 -0
  289. data/spec/{app → support}/models/kaleidoscope.rb +0 -0
  290. data/spec/{app → support}/models/kangaroo.rb +0 -0
  291. data/spec/{app → support}/models/label.rb +0 -0
  292. data/spec/{app → support}/models/language.rb +0 -0
  293. data/spec/{app → support}/models/lat_lng.rb +0 -0
  294. data/spec/{app → support}/models/league.rb +0 -0
  295. data/spec/{app → support}/models/learner.rb +0 -0
  296. data/spec/{app → support}/models/line_item.rb +0 -0
  297. data/spec/{app → support}/models/location.rb +0 -0
  298. data/spec/{app → support}/models/login.rb +0 -0
  299. data/spec/{app → support}/models/manufacturer.rb +0 -0
  300. data/spec/{app → support}/models/meat.rb +0 -0
  301. data/spec/{app → support}/models/membership.rb +0 -0
  302. data/spec/{app → support}/models/message.rb +0 -0
  303. data/spec/{app → support}/models/minim.rb +0 -0
  304. data/spec/{app → support}/models/mixed_drink.rb +0 -0
  305. data/spec/{app → support}/models/mop.rb +0 -10
  306. data/spec/{app → support}/models/movie.rb +0 -0
  307. data/spec/{app → support}/models/my_hash.rb +0 -0
  308. data/spec/{app → support}/models/name.rb +0 -0
  309. data/spec/{app → support}/models/name_only.rb +0 -0
  310. data/spec/{app → support}/models/node.rb +0 -0
  311. data/spec/{app → support}/models/note.rb +0 -0
  312. data/spec/{app → support}/models/odd.rb +0 -0
  313. data/spec/{app → support}/models/ordered_post.rb +0 -0
  314. data/spec/{app → support}/models/ordered_preference.rb +0 -0
  315. data/spec/{app → support}/models/oscar.rb +0 -0
  316. data/spec/{app → support}/models/other_owner_object.rb +0 -0
  317. data/spec/{app → support}/models/override.rb +0 -0
  318. data/spec/{app → support}/models/ownable.rb +0 -0
  319. data/spec/{app → support}/models/owner.rb +2 -0
  320. data/spec/{app → support}/models/pack.rb +0 -0
  321. data/spec/{app → support}/models/page.rb +0 -0
  322. data/spec/{app → support}/models/page_question.rb +0 -0
  323. data/spec/{app → support}/models/palette.rb +1 -1
  324. data/spec/{app → support}/models/parent.rb +0 -0
  325. data/spec/{app → support}/models/parent_doc.rb +0 -0
  326. data/spec/{app → support}/models/passport.rb +0 -0
  327. data/spec/{app → support}/models/patient.rb +0 -0
  328. data/spec/{app → support}/models/pdf_writer.rb +0 -0
  329. data/spec/{app → support}/models/pencil.rb +0 -0
  330. data/spec/{app → support}/models/person.rb +1 -12
  331. data/spec/{app → support}/models/pet.rb +0 -0
  332. data/spec/{app → support}/models/pet_owner.rb +0 -0
  333. data/spec/{app → support}/models/phone.rb +0 -0
  334. data/spec/support/models/piano.rb +5 -0
  335. data/spec/{app → support}/models/pizza.rb +0 -0
  336. data/spec/{app → support}/models/player.rb +0 -0
  337. data/spec/{app → support}/models/post.rb +0 -0
  338. data/spec/{app → support}/models/post_genre.rb +0 -0
  339. data/spec/{app → support}/models/powerup.rb +0 -0
  340. data/spec/{app → support}/models/preference.rb +0 -0
  341. data/spec/{app → support}/models/princess.rb +0 -0
  342. data/spec/{app → support}/models/product.rb +0 -0
  343. data/spec/support/models/profile.rb +18 -0
  344. data/spec/{app → support}/models/pronunciation.rb +0 -0
  345. data/spec/{app → support}/models/pub.rb +0 -0
  346. data/spec/{app → support}/models/publication/encyclopedia.rb +0 -0
  347. data/spec/{app → support}/models/publication/review.rb +0 -0
  348. data/spec/support/models/publication.rb +5 -0
  349. data/spec/{app → support}/models/purchase.rb +0 -0
  350. data/spec/{app → support}/models/question.rb +0 -0
  351. data/spec/{app → support}/models/quiz.rb +0 -0
  352. data/spec/{app → support}/models/rating.rb +0 -0
  353. data/spec/{app → support}/models/record.rb +0 -0
  354. data/spec/{app → support}/models/registry.rb +0 -0
  355. data/spec/{app → support}/models/role.rb +0 -0
  356. data/spec/{app → support}/models/root_category.rb +0 -0
  357. data/spec/{app → support}/models/sandwich.rb +0 -0
  358. data/spec/{app → support}/models/scheduler.rb +0 -0
  359. data/spec/{app/models/profile.rb → support/models/scribe.rb} +2 -2
  360. data/spec/support/models/seat.rb +25 -0
  361. data/spec/{app → support}/models/seo.rb +0 -0
  362. data/spec/{app → support}/models/series.rb +0 -1
  363. data/spec/{app → support}/models/server.rb +0 -0
  364. data/spec/{app → support}/models/service.rb +0 -0
  365. data/spec/{app → support}/models/shape.rb +2 -2
  366. data/spec/{app → support}/models/shelf.rb +0 -0
  367. data/spec/{app → support}/models/shipment_address.rb +0 -0
  368. data/spec/{app → support}/models/shipping_container.rb +0 -0
  369. data/spec/{app → support}/models/shipping_pack.rb +0 -0
  370. data/spec/{app → support}/models/shop.rb +0 -0
  371. data/spec/{app → support}/models/short_agent.rb +0 -0
  372. data/spec/{app → support}/models/short_quiz.rb +0 -0
  373. data/spec/{app → support}/models/simple.rb +0 -0
  374. data/spec/{app → support}/models/slave.rb +0 -0
  375. data/spec/{app → support}/models/song.rb +0 -0
  376. data/spec/{app → support}/models/sound.rb +0 -0
  377. data/spec/{app → support}/models/square.rb +0 -0
  378. data/spec/{app → support}/models/staff.rb +0 -0
  379. data/spec/{app → support}/models/store_as_dup_test1.rb +0 -0
  380. data/spec/{app → support}/models/store_as_dup_test2.rb +0 -0
  381. data/spec/{app → support}/models/store_as_dup_test3.rb +0 -0
  382. data/spec/{app → support}/models/store_as_dup_test4.rb +0 -0
  383. data/spec/{app → support}/models/strategy.rb +0 -0
  384. data/spec/{app → support}/models/sub_item.rb +0 -0
  385. data/spec/{app → support}/models/subscription.rb +0 -0
  386. data/spec/{app → support}/models/survey.rb +0 -0
  387. data/spec/{app → support}/models/symptom.rb +0 -0
  388. data/spec/support/models/system_role.rb +7 -0
  389. data/spec/{app → support}/models/tag.rb +0 -0
  390. data/spec/{app → support}/models/target.rb +0 -0
  391. data/spec/{app → support}/models/template.rb +0 -0
  392. data/spec/{app → support}/models/thing.rb +0 -0
  393. data/spec/{app → support}/models/title.rb +0 -0
  394. data/spec/{app → support}/models/tool.rb +2 -2
  395. data/spec/{app → support}/models/topping.rb +0 -0
  396. data/spec/support/models/toy.rb +10 -0
  397. data/spec/{app → support}/models/track.rb +0 -0
  398. data/spec/{app → support}/models/translation.rb +0 -0
  399. data/spec/{app → support}/models/tree.rb +0 -0
  400. data/spec/{app → support}/models/truck.rb +2 -0
  401. data/spec/{app → support}/models/updatable.rb +0 -0
  402. data/spec/{app → support}/models/user.rb +0 -0
  403. data/spec/{app → support}/models/user_account.rb +0 -0
  404. data/spec/{app → support}/models/validation_callback.rb +0 -0
  405. data/spec/{app → support}/models/vehicle.rb +7 -2
  406. data/spec/{app → support}/models/version.rb +0 -0
  407. data/spec/{app → support}/models/vertex.rb +0 -0
  408. data/spec/{app → support}/models/vet_visit.rb +0 -0
  409. data/spec/{app → support}/models/video.rb +0 -0
  410. data/spec/{app → support}/models/video_game.rb +0 -0
  411. data/spec/{app → support}/models/weapon.rb +0 -0
  412. data/spec/{app → support}/models/wiki_page.rb +0 -1
  413. data/spec/{app → support}/models/word.rb +0 -0
  414. data/spec/{app → support}/models/word_origin.rb +0 -0
  415. data/spec/{app → support}/models/writer.rb +2 -2
  416. data/spec/support/spec_config.rb +1 -9
  417. data/spec/support/spec_organizer.rb +130 -0
  418. data.tar.gz.sig +0 -0
  419. metadata +847 -844
  420. metadata.gz.sig +0 -0
  421. data/lib/mongoid/errors/empty_config_file.rb +0 -26
  422. data/lib/mongoid/errors/invalid_config_file.rb +0 -26
  423. data/lib/mongoid/matchable/all.rb +0 -30
  424. data/lib/mongoid/matchable/and.rb +0 -32
  425. data/lib/mongoid/matchable/default.rb +0 -121
  426. data/lib/mongoid/matchable/elem_match.rb +0 -36
  427. data/lib/mongoid/matchable/eq.rb +0 -23
  428. data/lib/mongoid/matchable/exists.rb +0 -25
  429. data/lib/mongoid/matchable/gt.rb +0 -25
  430. data/lib/mongoid/matchable/gte.rb +0 -25
  431. data/lib/mongoid/matchable/in.rb +0 -26
  432. data/lib/mongoid/matchable/lt.rb +0 -25
  433. data/lib/mongoid/matchable/lte.rb +0 -25
  434. data/lib/mongoid/matchable/ne.rb +0 -23
  435. data/lib/mongoid/matchable/nin.rb +0 -24
  436. data/lib/mongoid/matchable/nor.rb +0 -38
  437. data/lib/mongoid/matchable/or.rb +0 -35
  438. data/lib/mongoid/matchable/regexp.rb +0 -30
  439. data/lib/mongoid/matchable/size.rb +0 -23
  440. data/spec/app/models/customer.rb +0 -11
  441. data/spec/app/models/customer_address.rb +0 -12
  442. data/spec/app/models/publication.rb +0 -5
  443. data/spec/integration/associations/embeds_many_spec.rb +0 -24
  444. data/spec/integration/associations/embeds_one_spec.rb +0 -24
  445. data/spec/integration/callbacks_models.rb +0 -49
  446. data/spec/integration/callbacks_spec.rb +0 -216
  447. data/spec/integration/contextual/empty_spec.rb +0 -142
  448. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -32
  449. data/spec/mongoid/matchable/all_spec.rb +0 -34
  450. data/spec/mongoid/matchable/and_spec.rb +0 -190
  451. data/spec/mongoid/matchable/default_spec.rb +0 -140
  452. data/spec/mongoid/matchable/elem_match_spec.rb +0 -109
  453. data/spec/mongoid/matchable/eq_spec.rb +0 -49
  454. data/spec/mongoid/matchable/exists_spec.rb +0 -60
  455. data/spec/mongoid/matchable/gt_spec.rb +0 -89
  456. data/spec/mongoid/matchable/gte_spec.rb +0 -87
  457. data/spec/mongoid/matchable/in_spec.rb +0 -52
  458. data/spec/mongoid/matchable/lt_spec.rb +0 -88
  459. data/spec/mongoid/matchable/lte_spec.rb +0 -88
  460. data/spec/mongoid/matchable/ne_spec.rb +0 -49
  461. data/spec/mongoid/matchable/nin_spec.rb +0 -51
  462. data/spec/mongoid/matchable/nor_spec.rb +0 -210
  463. data/spec/mongoid/matchable/or_spec.rb +0 -134
  464. data/spec/mongoid/matchable/regexp_spec.rb +0 -62
  465. data/spec/mongoid/matchable/size_spec.rb +0 -28
  466. data/spec/mongoid/matchable_spec.rb +0 -856
  467. data/spec/shared/LICENSE +0 -20
  468. data/spec/shared/bin/get-mongodb-download-url +0 -17
  469. data/spec/shared/bin/s3-copy +0 -45
  470. data/spec/shared/bin/s3-upload +0 -69
  471. data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
  472. data/spec/shared/lib/mrss/cluster_config.rb +0 -226
  473. data/spec/shared/lib/mrss/constraints.rb +0 -385
  474. data/spec/shared/lib/mrss/docker_runner.rb +0 -271
  475. data/spec/shared/lib/mrss/event_subscriber.rb +0 -200
  476. data/spec/shared/lib/mrss/lite_constraints.rb +0 -191
  477. data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
  478. data/spec/shared/lib/mrss/spec_organizer.rb +0 -179
  479. data/spec/shared/lib/mrss/utils.rb +0 -15
  480. data/spec/shared/share/Dockerfile.erb +0 -323
  481. data/spec/shared/share/haproxy-1.conf +0 -16
  482. data/spec/shared/share/haproxy-2.conf +0 -17
  483. data/spec/shared/shlib/distro.sh +0 -73
  484. data/spec/shared/shlib/server.sh +0 -367
  485. data/spec/shared/shlib/set_env.sh +0 -131
@@ -1,323 +0,0 @@
1
- # Python toolchain as of this writing is available on rhel62, debian92 and
2
- # ubuntu1604.
3
- #
4
- # To run rhel62 in docker, host system must be configured to emulate syscalls:
5
- # https://github.com/CentOS/sig-cloud-instance-images/issues/103
6
-
7
- <%
8
-
9
- python_toolchain_url = "https://s3.amazonaws.com//mciuploads/mongo-python-driver-toolchain/#{distro}/ba92de2700c04ee2d4f82c3ffdfc33105140cb04/mongo_python_driver_toolchain_#{distro.gsub('-', '_')}_ba92de2700c04ee2d4f82c3ffdfc33105140cb04_19_11_14_15_33_33.tar.gz"
10
- server_version = '4.3.3'
11
- server_url = "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-#{distro}-#{server_version}.tgz"
12
- server_archive_basename = File.basename(server_url)
13
- server_extracted_dir = server_archive_basename.sub(/\.(tar\.gz|tgz)$/, '')
14
-
15
- toolchain_upper='291ba4a4e8297f142796e70eee71b99f333e35e1'
16
-
17
- ruby_toolchain_url = "http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/ruby-toolchain-#{distro}-#{toolchain_upper}.tar.xz"
18
- #ruby_toolchain_url = "https://s3.amazonaws.com//mciuploads/mongo-ruby-toolchain/#{distro}/#{toolchain_upper}/mongo_ruby_driver_toolchain_#{distro.gsub('-', '_')}_patch_#{toolchain_upper}_#{toolchain_lower}.tar.gz"
19
-
20
- %>
21
-
22
- FROM <%= base_image %>
23
-
24
- <% if debian? %>
25
-
26
- ENV DEBIAN_FRONTEND=noninteractive
27
-
28
- <% else %>
29
-
30
- RUN echo assumeyes=1 |tee -a /etc/yum.conf
31
-
32
- <% end %>
33
-
34
- <% if ruby_head? %>
35
-
36
- # To use current versions of mlaunch, Python 3.6+ is required.
37
- # Most distros ship with older Pythons, therefore we need to install
38
- # a newer Python from somewhere. This section installs the Python
39
- # toolhcain which comes with recent Pythons.
40
- # Alternatively, Ruby toolchain compiles its own copy of Python 3 but
41
- # this is currently incomplete in that on older distros with old OpenSSL,
42
- # the built Python has no ssl module and hence practically is unusable.
43
- # Currently Ruby driver uses mtools-legacy which supports Python 2,
44
- # avoiding this entire issue for the time being.
45
-
46
- #RUN curl --retry 3 -fL <%= python_toolchain_url %> -o python-toolchain.tar.gz
47
- #RUN tar -xC /opt -zf python-toolchain.tar.gz
48
-
49
- <% end %>
50
-
51
- <% if debian? %>
52
-
53
- # zsh is not required for any scripts but it is a better interactive shell
54
- # than bash.
55
- # Ruby runtime dependencies: libyaml-0-2
56
- # Compiling ruby libraries: gcc make
57
- # Compiling pyhton packages: python2.7-dev
58
- # JRuby: openjdk-8-jdk-headless
59
- # Server dependencies: libsnmp30 libcurl3/libcurl4
60
- # Determining OS we are running on: lsb-release
61
- # Load balancer testing: haproxy
62
- # Kerberos testing: krb5-user
63
- # Local Kerberos server: krb5-kdc krb5-admin-server
64
- # Installing mlaunch from git: git
65
- # ruby-head archive: bzip2
66
- # nio4r on JRuby: libgmp-dev
67
- # Snappy compression: libsnappy-dev
68
- # nokogiri: zlib1g-dev
69
- # Mongoid testing: tzdata shared-mime-info
70
- # Mongoid application testing: nodejs (8.x or newer)
71
- # Test suite: procps for ps (to kill JRubies)
72
- #
73
- # We currently use Python 2-compatible version of mtools, which
74
- # is installable via pip (which uses Python 2). All of the MongoDB
75
- # distros have pip installed (but none as of this writing have pip3)
76
- # therefore install python-pip in all configurations here.
77
-
78
- <% packages = %w(
79
- procps lsb-release bzip2 curl zsh
80
- git make gcc libyaml-0-2 libgmp-dev zlib1g-dev libsnappy-dev
81
- krb5-user krb5-kdc krb5-admin-server libsasl2-dev libsasl2-modules-gssapi-mit
82
- haproxy
83
- python3-pip
84
- tzdata shared-mime-info
85
- ) %>
86
-
87
- <% if distro =~ /ubuntu1404/ %>
88
- # For building python & setuptools
89
- <% packages += %w(libssl-dev unzip) %>
90
- <% end %>
91
-
92
- <% if distro !~ /ubuntu2004/ %>
93
- <% packages += %w(python2.7-dev) %>
94
- <% end %>
95
-
96
- <% if distro =~ /ubuntu2004/ %>
97
- <% packages << 'libsnmp35' %>
98
- <% else %>
99
- <% packages << 'libsnmp30' %>
100
- <% end %>
101
-
102
- <% if distro !~ /ubuntu2004/ %>
103
- <% packages << 'python-pip' %>
104
- <% end %>
105
-
106
- <% if distro =~ /debian10/ %>
107
- <% packages << 'openjdk-11-jdk-headless' %>
108
- <% elsif distro =~ /ubuntu1404/ %>
109
- # Ubuntu 14.04 only has openjdk 7, this is too old to be useful
110
- <% else %>
111
- <% packages << 'openjdk-8-jdk-headless' %>
112
- <% end %>
113
-
114
- # ubuntu1404, ubuntu1604: libcurl3
115
- # ubuntu1804, ubuntu2004, debian10: libcurl4
116
- <% if distro =~ /ubuntu1804|ubuntu2004|debian10/ %>
117
- <% packages << 'libcurl4' %>
118
- <% else %>
119
- <% packages << 'libcurl3' %>
120
- <% end %>
121
-
122
- <% if distro =~ /ubuntu1804/ %>
123
- <% packages << 'nodejs' %>
124
- <% end %>
125
-
126
- <% if distro =~ /ubuntu2004/ %>
127
- <% packages += %w(ruby ruby2.7 bundler python2 python2-dev) %>
128
- <% end %>
129
-
130
- RUN apt-get update && apt-get install -y <%= packages.join(' ') %>
131
- <% else %>
132
-
133
- <% if distro =~ /rhel6/ %>
134
-
135
- # CentOS 6 is dead - to use it retrieve the packages from vault:
136
- # https://stackoverflow.com/questions/53562691/error-cannot-retrieve-repository-metadata-repomd-xml-for-repository-base-pl
137
-
138
- <%
139
-
140
- cfg = <<-CFG
141
- [base]
142
- name=CentOS-$releasever - Base
143
- #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
144
- #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
145
- baseurl=http://vault.centos.org/6.10/os/x86_64/
146
- gpgcheck=1
147
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
148
- CFG
149
-
150
- %>
151
-
152
- RUN printf "<%= cfg.gsub("\n", "\\n") %>" >/etc/yum.repos.d/CentOS-Base.repo
153
-
154
- <% end %>
155
-
156
- # Enterprise server: net-snmp
157
- # lsb_release: redhat-lsb-core
158
- # our runner scripts: which
159
- # Ruby dependency: libyaml
160
- # compiling python packages: gcc python-devel
161
- # Kerberos tests: krb5-workstation + cyrus-sasl-devel to build the
162
- # mongo_kerberos gem + cyrus-sasl-gssapi for authentication to work
163
- # Local Kerberos server: krb5-server
164
- # JRuby: java-1.8.0-openjdk
165
- #
166
- # Note: lacking cyrus-sasl-gssapi produces a cryptic message
167
- # "SASL(-4): no mechanism available: No worthy mechs found"
168
- # https://github.com/farorm/python-ad/issues/10
169
-
170
- RUN yum install -y redhat-lsb-core which git gcc libyaml krb5-server \
171
- krb5-workstation cyrus-sasl-devel cyrus-sasl-gssapi java-1.8.0-openjdk \
172
- net-snmp python3
173
-
174
- <% if distro =~ /rhel6/ %>
175
-
176
- # RHEL 6 ships with Python 2.6.
177
-
178
- RUN yum install -y centos-release-scl && \
179
- yum install -y python27-python python27-python-devel
180
- ENV PATH=/opt/rh/python27/root/usr/bin:$PATH \
181
- LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64
182
-
183
- <% else %>
184
-
185
- RUN yum install -y python-devel
186
-
187
- <% end %>
188
-
189
- <% end %>
190
-
191
- <% if preload? %>
192
-
193
- <% if distro =~ /ubuntu1404/ %>
194
-
195
- # I couldn't find a prebuilt package of anything more recent than 2.7.6
196
- # for 14.04.
197
- RUN curl --retry 3 -fL https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tar.xz | \
198
- tar xfJ - && \
199
- cd Python-2.7.16 && \
200
- ./configure && \
201
- nice make -j4 && \
202
- make install && \
203
- cd .. && rm -rf Python-2.7.16
204
-
205
- ENV PATH=/usr/local/bin:$PATH
206
-
207
- RUN curl --retry 3 -fL -o setuptools-44.1.1.zip https://files.pythonhosted.org/packages/b2/40/4e00501c204b457f10fe410da0c97537214b2265247bc9a5bc6edd55b9e4/setuptools-44.1.1.zip && \
208
- unzip setuptools-44.1.1.zip && \
209
- cd setuptools-44.1.1 && \
210
- python setup.py install && \
211
- cd .. && rm -rf setuptools-44.1.1
212
-
213
- <% end%>
214
-
215
- <% if true || distro =~ /rhel|ubuntu1604/ %>
216
-
217
- # Ubuntu 12.04 ships pip 1.0 which is ancient and does not work.
218
- #
219
- # Ubuntu 16.04 apparently also ships a pip that does not work:
220
- # https://stackoverflow.com/questions/37495375/python-pip-install-throws-typeerror-unsupported-operand-types-for-retry
221
- # Potentially this only affects environments with less than ideal
222
- # connectivity (or, perhaps, when python package registry is experiencing
223
- # availability issues) when pip must retry to install packages.
224
- #
225
- # rhel apparently does not package pip at all in core repoitories,
226
- # therefore install it the manual way.
227
- #
228
- # https://pip.pypa.io/en/stable/installing/
229
- RUN curl --retry 3 -fL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2
230
-
231
- <% end %>
232
-
233
- # Current virtualenv fails with
234
- # https://github.com/pypa/virtualenv/issues/1630
235
- <% if distro =~ /ubuntu2004/ %>
236
- RUN python3 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]'
237
- <% else %>
238
- RUN python2 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]'
239
- <% end %>
240
-
241
- RUN pip --version && \
242
- pip install mtools-legacy[mlaunch]
243
-
244
- <% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
245
- # ubuntu1604 installs MarkupSafe 0.0.0 here instead of 2.0.0+
246
- # as specified by dependencies, causing OCSP mock to not work.
247
- RUN python3 -mpip install asn1crypto oscrypto flask --upgrade
248
- <% end %>
249
-
250
- <% unless ruby_head? || system_ruby? %>
251
-
252
- RUN curl --retry 3 -fL <%= ruby_toolchain_url %> |tar -xC /opt -Jf -
253
- ENV PATH=/opt/rubies/<%= ruby %>/bin:$PATH \
254
- USE_OPT_TOOLCHAIN=1
255
- #ENV PATH=/opt/rubies/python/3/bin:$PATH
256
-
257
- <% end %>
258
-
259
- RUN curl --retry 3 -fL <%= server_download_url %> |tar xzf - && \
260
- mv mongo*/ /opt/mongodb
261
- ENV USE_OPT_MONGODB=1 USE_SYSTEM_PYTHON_PACKAGES=1
262
-
263
- <% end %>
264
-
265
- <% if distro =~ /debian|ubuntu/ %>
266
- # mkdir was moved from /usr/bin to /bin and MongoDB's distros
267
- # apparently keep using the old location.
268
- # This definitely affects debian10.
269
- # https://stackoverflow.com/questions/64653051/make-usr-bin-mkdir-command-not-found-during-gem-install-nokogiri-in-ubuntu
270
- RUN test -f /usr/bin/mkdir || ln -s /bin/mkdir /usr/bin/mkdir
271
- <% end %>
272
-
273
- WORKDIR /app
274
-
275
- <% if preload? && !ruby_head? %>
276
-
277
- COPY Gemfile .
278
- COPY gemfiles gemfiles
279
- COPY *.gemspec .
280
- COPY lib/<%= project_lib_subdir %>/version.rb lib/<%= project_lib_subdir %>/version.rb
281
- RUN bundle install
282
- COPY .evergreen/patch-debuggers .evergreen/patch-debuggers
283
- <% if system_ruby? %>
284
- # Running under docker with root access
285
- RUN .evergreen/patch-debuggers /var/lib/gems
286
- <% else %>
287
- RUN .evergreen/patch-debuggers /opt/rubies
288
- <% end %>
289
-
290
- <% end %>
291
-
292
- <% if fle? %>
293
- RUN curl --retry 3 -fLo libmongocrypt-all.tar.gz "https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz"
294
- RUN tar xf libmongocrypt-all.tar.gz
295
-
296
- <%= "ENV LIBMONGOCRYPT_PATH #{libmongocrypt_path}" %>
297
- <% end %>
298
-
299
- ENV MONGO_ORCHESTRATION_HOME=/tmpfs \
300
- PROJECT_DIRECTORY=/app \
301
- <%= @env.map { |k, v| %Q`#{k}="#{v.gsub('$', "\\$").gsub('"', "\\\"")}"` }.join(" \\\n ") %>
302
-
303
- <% if interactive? %>
304
- ENV INTERACTIVE=1
305
- <% end %>
306
-
307
- COPY . .
308
-
309
- <% if expose? %>
310
-
311
- <% ports = [] %>
312
-
313
- <% 0.upto(num_exposed_ports-1) do |i| %>
314
- <% ports << 27017 + i %>
315
- <% end %>
316
-
317
- <% if @env['OCSP_ALGORITHM'] %>
318
- <% ports << 8100 %>
319
- <% end %>
320
-
321
- EXPOSE <%= ports.map(&:to_s).join(' ') %>
322
-
323
- <% end %>
@@ -1,16 +0,0 @@
1
- # Modeled after
2
- # https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/run-load-balancer.sh
3
-
4
- defaults
5
- mode tcp
6
- timeout connect 7s
7
- timeout client 55s
8
- timeout server 55s
9
-
10
- frontend mongos_frontend
11
- bind *:27017
12
- use_backend mongos_backend
13
-
14
- backend mongos_backend
15
- mode tcp
16
- server mongos_one 127.0.0.1:27117 check
@@ -1,17 +0,0 @@
1
- # Modeled after
2
- # https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/run-load-balancer.sh
3
-
4
- defaults
5
- mode tcp
6
- timeout connect 7s
7
- timeout client 55s
8
- timeout server 55s
9
-
10
- frontend mongos_frontend
11
- bind *:27017
12
- use_backend mongos_backend
13
-
14
- backend mongos_backend
15
- mode tcp
16
- server mongos_one 127.0.0.1:27117 check
17
- server mongos_two 127.0.0.1:27118 check
@@ -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
- }