mongo 1.1.4 → 1.1.5

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 (40) hide show
  1. data/Rakefile +50 -69
  2. data/docs/CREDITS.md +4 -0
  3. data/docs/HISTORY.md +9 -0
  4. data/docs/REPLICA_SETS.md +8 -10
  5. data/lib/mongo.rb +3 -1
  6. data/lib/mongo/collection.rb +2 -1
  7. data/lib/mongo/connection.rb +146 -314
  8. data/lib/mongo/db.rb +6 -2
  9. data/lib/mongo/gridfs/grid.rb +1 -1
  10. data/lib/mongo/gridfs/grid_io.rb +29 -5
  11. data/lib/mongo/repl_set_connection.rb +290 -0
  12. data/lib/mongo/util/pool.rb +6 -8
  13. data/lib/mongo/util/uri_parser.rb +71 -0
  14. data/mongo.gemspec +1 -2
  15. data/test/collection_test.rb +9 -7
  16. data/test/connection_test.rb +0 -6
  17. data/test/grid_file_system_test.rb +2 -2
  18. data/test/grid_io_test.rb +33 -1
  19. data/test/grid_test.rb +36 -6
  20. data/test/replica_sets/connect_test.rb +59 -21
  21. data/test/replica_sets/count_test.rb +9 -7
  22. data/test/replica_sets/insert_test.rb +11 -9
  23. data/test/replica_sets/pooled_insert_test.rb +12 -13
  24. data/test/replica_sets/query_secondaries.rb +48 -8
  25. data/test/replica_sets/query_test.rb +10 -9
  26. data/test/replica_sets/replication_ack_test.rb +15 -22
  27. data/test/replica_sets/rs_test_helper.rb +29 -0
  28. data/test/test_helper.rb +13 -20
  29. data/test/threading/{test_threading_large_pool.rb → threading_with_large_pool_test.rb} +1 -1
  30. data/test/tools/repl_set_manager.rb +241 -0
  31. data/test/tools/test.rb +13 -0
  32. data/test/unit/connection_test.rb +3 -85
  33. data/test/unit/repl_set_connection_test.rb +82 -0
  34. metadata +19 -21
  35. data/test/replica_pairs/count_test.rb +0 -34
  36. data/test/replica_pairs/insert_test.rb +0 -50
  37. data/test/replica_pairs/pooled_insert_test.rb +0 -54
  38. data/test/replica_pairs/query_test.rb +0 -39
  39. data/test/replica_sets/node_type_test.rb +0 -42
  40. data/test/rs.rb +0 -24
@@ -1,39 +0,0 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- require 'mongo'
3
- require 'test/unit'
4
- require './test/test_helper'
5
-
6
- # NOTE: this test should be run only if a replica pair is running.
7
- class ReplicaPairQueryTest < Test::Unit::TestCase
8
- include Mongo
9
-
10
- def setup
11
- @conn = Mongo::Connection.new({:left => ["localhost", 27017], :right => ["localhost", 27018]}, nil)
12
- @db = @conn.db('mongo-ruby-test')
13
- @db.drop_collection("test-pairs")
14
- @coll = @db.collection("test-pairs")
15
- end
16
-
17
- def test_query
18
- @coll.save({:a => 20})
19
- @coll.save({:a => 30})
20
- @coll.save({:a => 40})
21
- results = []
22
- @coll.find.each {|r| results << r}
23
- [20, 30, 40].each do |a|
24
- assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a}"
25
- end
26
-
27
- puts "Please disconnect the current master."
28
- gets
29
-
30
- results = []
31
- rescue_connection_failure do
32
- @coll.find.each {|r| results << r}
33
- [20, 30, 40].each do |a|
34
- assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a}"
35
- end
36
- end
37
- end
38
-
39
- end
@@ -1,42 +0,0 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- require 'mongo'
3
- require 'test/unit'
4
- require './test/test_helper'
5
-
6
- # NOTE: This test expects a replica set of three nodes, one of which is an arbiter, to be running
7
- # on the local host.
8
- class ReplicaSetNodeTypeTest < Test::Unit::TestCase
9
- include Mongo
10
-
11
- def setup
12
- @conn = Mongo::Connection.multi([['localhost', 27017], ['localhost', 27018], ['localhost', 27019]])
13
- @db = @conn.db(MONGO_TEST_DB)
14
- @db.drop_collection("test-sets")
15
- @coll = @db.collection("test-sets")
16
- end
17
-
18
- def test_correct_node_types
19
- p @conn.primary
20
- p @conn.secondaries
21
- p @conn.arbiters
22
- assert_equal 1, @conn.secondaries.length
23
- assert_equal 1, @conn.arbiters.length
24
-
25
- old_secondary = @conn.secondaries.first
26
- old_primary = @conn.primary
27
-
28
- puts "Please disconnect the current primary and reconnect so that it becomes secondary."
29
- gets
30
-
31
- # Insert something to rescue the connection failure.
32
- rescue_connection_failure do
33
- @coll.insert({:a => 30}, :safe => true)
34
- end
35
-
36
- assert_equal 1, @conn.secondaries.length
37
- assert_equal 1, @conn.arbiters.length
38
- assert_equal old_primary, @conn.secondaries.first
39
- assert_equal old_secondary, @conn.primary
40
- end
41
-
42
- end
data/test/rs.rb DELETED
@@ -1,24 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require 'rubygems'
4
- require 'mongo'
5
-
6
- START_PORT = 27017
7
- N = 4
8
-
9
- N.times do |n|
10
- system("sudo rm -rf /data/rs#{n}")
11
- system("sudo mkdir -p /data/rs#{n}")
12
- system("sudo chown kyle:kyle /data/rs#{n}")
13
- system("mongod --replSet replica-set-foo --logpath '#{n}.log' --dbpath /data/rs#{n} --port #{START_PORT + n} --fork")
14
- end
15
-
16
- con =<<DOC
17
- config = {_id: 'replica-set-foo',
18
- members: [{_id: 0, host:'localhost:27017'},
19
- {_id:1, host:'localhost:27018'},
20
- {_id: 2, host: 'localhost:27019', arbiterOnly: true},
21
- {_id: 3, host: 'localhost:27020'}]}"
22
- DOC
23
-
24
- puts con