mongo 2.0.5 → 2.0.6

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 (85) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/mongo/auth/cr/conversation.rb +0 -1
  5. data/lib/mongo/client.rb +19 -5
  6. data/lib/mongo/cluster.rb +84 -16
  7. data/lib/mongo/cluster/topology.rb +3 -4
  8. data/lib/mongo/cluster/topology/replica_set.rb +75 -0
  9. data/lib/mongo/cluster/topology/sharded.rb +60 -0
  10. data/lib/mongo/cluster/topology/single.rb +51 -0
  11. data/lib/mongo/cluster/topology/unknown.rb +62 -0
  12. data/lib/mongo/error/invalid_bulk_operation.rb +2 -1
  13. data/lib/mongo/event.rb +9 -9
  14. data/lib/mongo/event/{server_added.rb → description_changed.rb} +6 -5
  15. data/lib/mongo/event/{server_removed.rb → standalone_discovered.rb} +15 -15
  16. data/lib/mongo/operation/aggregate.rb +6 -5
  17. data/lib/mongo/operation/command.rb +5 -6
  18. data/lib/mongo/operation/kill_cursors.rb +3 -2
  19. data/lib/mongo/operation/map_reduce.rb +6 -5
  20. data/lib/mongo/operation/read/collections_info.rb +5 -4
  21. data/lib/mongo/operation/read/get_more.rb +8 -7
  22. data/lib/mongo/operation/read/indexes.rb +4 -3
  23. data/lib/mongo/operation/read/list_collections.rb +5 -4
  24. data/lib/mongo/operation/read/list_indexes.rb +7 -6
  25. data/lib/mongo/operation/read/query.rb +8 -7
  26. data/lib/mongo/operation/read_preferrable.rb +6 -2
  27. data/lib/mongo/operation/write/bulk/bulk_delete.rb +13 -12
  28. data/lib/mongo/operation/write/bulk/bulk_insert.rb +10 -9
  29. data/lib/mongo/operation/write/bulk/bulk_insert/result.rb +2 -2
  30. data/lib/mongo/operation/write/bulk/bulk_update.rb +12 -11
  31. data/lib/mongo/operation/write/create_index.rb +8 -7
  32. data/lib/mongo/operation/write/create_user.rb +4 -3
  33. data/lib/mongo/operation/write/delete.rb +13 -12
  34. data/lib/mongo/operation/write/drop_index.rb +6 -5
  35. data/lib/mongo/operation/write/insert.rb +8 -7
  36. data/lib/mongo/operation/write/insert/result.rb +1 -1
  37. data/lib/mongo/operation/write/remove_user.rb +4 -3
  38. data/lib/mongo/operation/write/update.rb +10 -9
  39. data/lib/mongo/operation/write/update_user.rb +4 -3
  40. data/lib/mongo/server.rb +8 -15
  41. data/lib/mongo/server/context.rb +2 -2
  42. data/lib/mongo/server/description.rb +65 -3
  43. data/lib/mongo/server/description/features.rb +2 -1
  44. data/lib/mongo/server/description/inspector.rb +5 -5
  45. data/lib/mongo/server/description/inspector/{server_added.rb → description_changed.rb} +3 -5
  46. data/lib/mongo/server/description/inspector/{server_removed.rb → standalone_discovered.rb} +12 -15
  47. data/lib/mongo/version.rb +1 -1
  48. data/spec/mongo/auth/cr_spec.rb +1 -1
  49. data/spec/mongo/auth/ldap_spec.rb +1 -1
  50. data/spec/mongo/auth/scram_spec.rb +1 -1
  51. data/spec/mongo/auth/x509_spec.rb +1 -1
  52. data/spec/mongo/client_spec.rb +4 -0
  53. data/spec/mongo/cluster/topology/replica_set_spec.rb +254 -4
  54. data/spec/mongo/cluster/topology/sharded_spec.rb +70 -19
  55. data/spec/mongo/cluster/topology/single_spec.rb +25 -4
  56. data/spec/mongo/cluster/topology/unknown_spec.rb +167 -0
  57. data/spec/mongo/cluster/topology_spec.rb +6 -6
  58. data/spec/mongo/cluster_spec.rb +179 -1
  59. data/spec/mongo/operation/read_preferrable_spec.rb +81 -28
  60. data/spec/mongo/operation/write/bulk/bulk_delete_spec.rb +1 -0
  61. data/spec/mongo/server/connection_pool_spec.rb +10 -10
  62. data/spec/mongo/server/connection_spec.rb +1 -1
  63. data/spec/mongo/server/description/features_spec.rb +23 -3
  64. data/spec/mongo/server/description/inspector/description_changed_spec.rb +78 -0
  65. data/spec/mongo/server/description_spec.rb +238 -0
  66. data/spec/mongo/server/monitor_spec.rb +1 -1
  67. data/spec/mongo/server_discovery_and_monitoring_spec.rb +20 -4
  68. data/spec/mongo/server_selection_spec.rb +2 -2
  69. data/spec/mongo/server_spec.rb +12 -8
  70. data/spec/support/authorization.rb +8 -8
  71. data/spec/support/sdam/rs/discover_passives.yml +36 -0
  72. data/spec/support/sdam/rs/new_primary_wrong_set_name.yml +2 -2
  73. data/spec/support/sdam/rs/primary_becomes_standalone.yml +1 -1
  74. data/spec/support/sdam/rs/primary_changes_set_name.yml +2 -2
  75. data/spec/support/sdam/rs/primary_disconnect.yml +1 -1
  76. data/spec/support/sdam/rs/primary_wrong_set_name.yml +1 -1
  77. data/spec/support/sdam/rs/secondary_wrong_set_name.yml +1 -1
  78. data/spec/support/sdam/rs/secondary_wrong_set_name_with_primary.yml +2 -2
  79. data/spec/support/sdam/sharded/single_mongos.yml +33 -0
  80. data/spec/support/shared/operation.rb +12 -4
  81. data/spec/support/shared/server_selector.rb +1 -1
  82. metadata +12 -10
  83. metadata.gz.sig +0 -0
  84. data/spec/mongo/server/description/inspector/server_added_spec.rb +0 -92
  85. data/spec/mongo/server/description/inspector/server_removed_spec.rb +0 -95
@@ -22,7 +22,7 @@ describe Mongo::Server::Monitor do
22
22
  start = Time.now
23
23
  monitor.scan!
24
24
  monitor.scan!
25
- expect(Time.now - start).to be > 0.5
25
+ expect(Time.now - start).to be >= 0.5
26
26
  end
27
27
  end
28
28
 
@@ -32,10 +32,11 @@ describe 'Server Discovery and Monitoring' do
32
32
  # @since 2.0.0
33
33
  class Mongo::Server
34
34
 
35
- # The contructor keeps the same API, but does not instantiate a
35
+ # The constructor keeps the same API, but does not instantiate a
36
36
  # monitor and run it.
37
- def initialize(address, event_listeners, options = {})
37
+ def initialize(address, cluster, event_listeners, options = {})
38
38
  @address = address
39
+ @cluster = cluster
39
40
  @options = options.freeze
40
41
  @monitor = Monitor.new(address, event_listeners, options)
41
42
  end
@@ -58,8 +59,9 @@ describe 'Server Discovery and Monitoring' do
58
59
  class Mongo::Server
59
60
 
60
61
  # Returns the constructor to its original implementation.
61
- def initialize(address, event_listeners, options = {})
62
+ def initialize(address, cluster, event_listeners, options = {})
62
63
  @address = address
64
+ @cluster = cluster
63
65
  @options = options.freeze
64
66
  @monitor = Monitor.new(address, event_listeners, options)
65
67
  @monitor.scan!
@@ -90,17 +92,27 @@ describe 'Server Discovery and Monitoring' do
90
92
  context("Phase: #{index + 1}") do
91
93
 
92
94
  phase.responses.each do |response|
93
-
94
95
  before do
95
96
  # For each response in the phase, we need to change that server's
96
97
  # description.
97
98
  server = find_server(@client, response.address)
99
+ server = Mongo::Server.new(Mongo::Address.new(response.address), @client.cluster,
100
+ @client.cluster.send(:event_listeners), @client.cluster.options) unless server
98
101
  monitor = server.instance_variable_get(:@monitor)
99
102
  description = monitor.inspector.run(server.description, response.ismaster, 0.5)
100
103
  monitor.instance_variable_set(:@description, description)
101
104
  end
102
105
  end
103
106
 
107
+ let(:cluster_addresses) do
108
+ @client.cluster.instance_variable_get(:@servers).
109
+ collect(&:address).collect(&:to_s).uniq.sort
110
+ end
111
+
112
+ let(:phase_addresses) do
113
+ phase.outcome.servers.keys.sort
114
+ end
115
+
104
116
  it "sets the cluster topology to #{phase.outcome.topology_type}" do
105
117
  expect(@client.cluster).to be_topology(phase.outcome.topology_type)
106
118
  end
@@ -109,6 +121,10 @@ describe 'Server Discovery and Monitoring' do
109
121
  expect(@client.cluster.replica_set_name).to eq(phase.outcome.set_name)
110
122
  end
111
123
 
124
+ it "has the expected servers in the cluster" do
125
+ expect(cluster_addresses).to eq(phase_addresses)
126
+ end
127
+
112
128
  phase.outcome.servers.each do |uri, server|
113
129
 
114
130
  it "sets #{uri} to #{server['type']}" do
@@ -26,7 +26,7 @@ describe 'Server Selection' do
26
26
  let(:candidate_servers) do
27
27
  spec.candidate_servers.collect do |server|
28
28
  address = Mongo::Address.new(server['address'])
29
- Mongo::Server.new(address, Mongo::Event::Listeners.new, TEST_OPTIONS).tap do |s|
29
+ Mongo::Server.new(address, double('cluster'), Mongo::Event::Listeners.new, TEST_OPTIONS).tap do |s|
30
30
  allow(s).to receive(:average_round_trip_time).and_return(server['avg_rtt_ms'])
31
31
  allow(s).to receive(:tags).and_return(server['tags'])
32
32
  allow(s).to receive(:secondary?).and_return(server['type'] == 'RSSecondary')
@@ -38,7 +38,7 @@ describe 'Server Selection' do
38
38
  let(:in_latency_window) do
39
39
  spec.in_latency_window.collect do |server|
40
40
  address = Mongo::Address.new(server['address'])
41
- Mongo::Server.new(address, Mongo::Event::Listeners.new, TEST_OPTIONS).tap do |s|
41
+ Mongo::Server.new(address, double('cluster'), Mongo::Event::Listeners.new, TEST_OPTIONS).tap do |s|
42
42
  allow(s).to receive(:average_round_trip_time).and_return(server['avg_rtt_ms'])
43
43
  allow(s).to receive(:tags).and_return(server['tags'])
44
44
  end
@@ -2,6 +2,10 @@ require 'spec_helper'
2
2
 
3
3
  describe Mongo::Server do
4
4
 
5
+ let(:cluster) do
6
+ double('cluster')
7
+ end
8
+
5
9
  let(:listeners) do
6
10
  Mongo::Event::Listeners.new
7
11
  end
@@ -13,7 +17,7 @@ describe Mongo::Server do
13
17
  describe '#==' do
14
18
 
15
19
  let(:server) do
16
- described_class.new(address, listeners, TEST_OPTIONS)
20
+ described_class.new(address, cluster, listeners, TEST_OPTIONS)
17
21
  end
18
22
 
19
23
  context 'when the other is not a server' do
@@ -32,7 +36,7 @@ describe Mongo::Server do
32
36
  context 'when the addresses match' do
33
37
 
34
38
  let(:other) do
35
- described_class.new(address, listeners, TEST_OPTIONS)
39
+ described_class.new(address, cluster, listeners, TEST_OPTIONS)
36
40
  end
37
41
 
38
42
  it 'returns true' do
@@ -47,7 +51,7 @@ describe Mongo::Server do
47
51
  end
48
52
 
49
53
  let(:other) do
50
- described_class.new(other_address, listeners, TEST_OPTIONS)
54
+ described_class.new(other_address, cluster, listeners, TEST_OPTIONS)
51
55
  end
52
56
 
53
57
  it 'returns false' do
@@ -60,7 +64,7 @@ describe Mongo::Server do
60
64
  describe '#context' do
61
65
 
62
66
  let(:server) do
63
- described_class.new(address, listeners, TEST_OPTIONS)
67
+ described_class.new(address, cluster, listeners, TEST_OPTIONS)
64
68
  end
65
69
 
66
70
  let(:context) do
@@ -75,7 +79,7 @@ describe Mongo::Server do
75
79
  describe '#disconnect!' do
76
80
 
77
81
  let(:server) do
78
- described_class.new(address, listeners, TEST_OPTIONS)
82
+ described_class.new(address, cluster, listeners, TEST_OPTIONS)
79
83
  end
80
84
 
81
85
  it 'stops the monitor instance' do
@@ -87,7 +91,7 @@ describe Mongo::Server do
87
91
  describe '#initialize' do
88
92
 
89
93
  let(:server) do
90
- described_class.new(address, listeners, TEST_OPTIONS.merge(:heartbeat_frequency => 5))
94
+ described_class.new(address, cluster, listeners, TEST_OPTIONS.merge(:heartbeat_frequency => 5))
91
95
  end
92
96
 
93
97
  it 'sets the address host' do
@@ -106,7 +110,7 @@ describe Mongo::Server do
106
110
  describe '#pool' do
107
111
 
108
112
  let(:server) do
109
- described_class.new(address, listeners, TEST_OPTIONS)
113
+ described_class.new(address, cluster, listeners, TEST_OPTIONS)
110
114
  end
111
115
 
112
116
  let(:pool) do
@@ -121,7 +125,7 @@ describe Mongo::Server do
121
125
  describe '#scan!' do
122
126
 
123
127
  let(:server) do
124
- described_class.new(address, listeners, TEST_OPTIONS)
128
+ described_class.new(address, cluster, listeners, TEST_OPTIONS)
125
129
  end
126
130
 
127
131
  it 'forces a scan on the monitor' do
@@ -36,14 +36,14 @@ DEFAULT_ADDRESS = ADDRESSES.first
36
36
  # The topology type.
37
37
  #
38
38
  # @since 2.0.0
39
- CONNECT = ENV['RS_ENABLED'] == 'true' ? :replica_set.freeze :
40
- ENV['SHARDED_ENABLED'] == 'true' ? :sharded.freeze :
41
- :direct.freeze
39
+ CONNECT = ENV['RS_ENABLED'] == 'true' ? { connect: :replica_set, replica_set: ENV['RS_NAME'] } :
40
+ ENV['SHARDED_ENABLED'] == 'true' ? { connect: :sharded } :
41
+ { connect: :direct }
42
42
 
43
43
  # The write concern to use in the tests.
44
44
  #
45
45
  # @since 2.0.0
46
- WRITE_CONCERN = (CONNECT == :replica_set) ? { w: ADDRESSES.size } : { w: 1 }
46
+ WRITE_CONCERN = CONNECT[:connect] == :replica_set ? { w: ADDRESSES.size } : { w: 1 }
47
47
 
48
48
  # Whether to use SSL.
49
49
  #
@@ -53,10 +53,10 @@ SSL = ENV['SSL_ENABLED'] == 'true'
53
53
  # Options for test suite clients.
54
54
  #
55
55
  # @since 2.0.3
56
- TEST_OPTIONS = { connect: CONNECT,
57
- max_pool_size: 1,
58
- write: WRITE_CONCERN,
59
- ssl: SSL }
56
+ TEST_OPTIONS = CONNECT.merge(max_pool_size: 1,
57
+ write: WRITE_CONCERN,
58
+ ssl: SSL,
59
+ server_selection_timeout: 3)
60
60
 
61
61
  # The root user name.
62
62
  #
@@ -34,6 +34,42 @@ phases: [
34
34
  }
35
35
  },
36
36
 
37
+ topologyType: "ReplicaSetWithPrimary",
38
+ setName: "rs"
39
+ }
40
+ },
41
+ {
42
+ responses: [
43
+
44
+ ["b:27017", {
45
+
46
+ ok: 1,
47
+ ismaster: false,
48
+ secondary: true,
49
+ passive: true,
50
+ hosts: ["a:27017"],
51
+ passives: ["b:27017"],
52
+ setName: "rs"
53
+ }]
54
+ ],
55
+
56
+ outcome: {
57
+
58
+ servers: {
59
+
60
+ "a:27017": {
61
+
62
+ type: "RSPrimary",
63
+ setName: "rs"
64
+ },
65
+
66
+ "b:27017": {
67
+
68
+ type: "RSSecondary",
69
+ setName: "rs"
70
+ }
71
+ },
72
+
37
73
  topologyType: "ReplicaSetWithPrimary",
38
74
  setName: "rs"
39
75
  }
@@ -12,7 +12,7 @@ phases: [
12
12
 
13
13
  ok: 1,
14
14
  ismaster: true,
15
- hosts: ["a", "b"],
15
+ hosts: ["a:27017", "b:27017"],
16
16
  setName: "rs"
17
17
  }]
18
18
  ],
@@ -48,7 +48,7 @@ phases: [
48
48
 
49
49
  ok: 1,
50
50
  ismaster: true,
51
- hosts: ["a"],
51
+ hosts: ["a:27017"],
52
52
  setName: "wrong"
53
53
  }]
54
54
  ],
@@ -11,7 +11,7 @@ phases: [
11
11
 
12
12
  ok: 1,
13
13
  ismaster: true,
14
- hosts: ["a"],
14
+ hosts: ["a:27017"],
15
15
  setName: "rs"
16
16
  }]
17
17
  ],
@@ -12,7 +12,7 @@ phases: [
12
12
 
13
13
  ok: 1,
14
14
  ismaster: true,
15
- hosts: ["a"],
15
+ hosts: ["a:27017"],
16
16
  setName: "rs"
17
17
  }]
18
18
  ],
@@ -41,7 +41,7 @@ phases: [
41
41
 
42
42
  ok: 1,
43
43
  ismaster: true,
44
- hosts: ["a"],
44
+ hosts: ["a:27017"],
45
45
  setName: "wrong"
46
46
  }]
47
47
  ],
@@ -11,7 +11,7 @@ phases: [
11
11
 
12
12
  ok: 1,
13
13
  ismaster: true,
14
- hosts: ["a"],
14
+ hosts: ["a:27017"],
15
15
  setName: "rs"
16
16
  }]
17
17
  ],
@@ -11,7 +11,7 @@ phases: [
11
11
 
12
12
  ok: 1,
13
13
  ismaster: true,
14
- hosts: ["a"],
14
+ hosts: ["a:27017"],
15
15
  setName: "wrong"
16
16
  }]
17
17
  ],
@@ -12,7 +12,7 @@ phases: [
12
12
  ok: 1,
13
13
  ismaster: false,
14
14
  secondary: true,
15
- hosts: ["a"],
15
+ hosts: ["a:27017"],
16
16
  setName: "wrong"
17
17
  }]
18
18
  ],
@@ -11,7 +11,7 @@ phases: [
11
11
 
12
12
  ok: 1,
13
13
  ismaster: true,
14
- hosts: ["a", "b"],
14
+ hosts: ["a:27017", "b:27017"],
15
15
  setName: "rs"
16
16
  }]
17
17
  ],
@@ -46,7 +46,7 @@ phases: [
46
46
  ok: 1,
47
47
  ismaster: false,
48
48
  secondary: true,
49
- hosts: ["a", "b"],
49
+ hosts: ["a:27017", "b:27017"],
50
50
  setName: "wrong"
51
51
  }]
52
52
  ],
@@ -0,0 +1,33 @@
1
+ description: "Single mongos"
2
+
3
+ uri: "mongodb://a"
4
+
5
+ phases: [
6
+
7
+ {
8
+ responses: [
9
+
10
+ ["a:27017", {
11
+
12
+ ok: 1,
13
+ ismaster: true,
14
+ msg: "isdbgrid"
15
+ }]
16
+ ],
17
+
18
+ outcome: {
19
+
20
+ servers: {
21
+
22
+ "a:27017": {
23
+
24
+ type: "Mongos",
25
+ setName:
26
+ }
27
+ },
28
+
29
+ topologyType: "Sharded",
30
+ setName:
31
+ }
32
+ }
33
+ ]
@@ -5,6 +5,10 @@ shared_context 'operation' do
5
5
  let(:write_concern) { Mongo::WriteConcern.get(:w => 1) }
6
6
  let(:options) { {} }
7
7
 
8
+ let(:cluster_double) do
9
+ double('cluster')
10
+ end
11
+
8
12
  # Server doubles
9
13
  let(:secondary_server) do
10
14
  double('secondary_server').tap do |s|
@@ -43,7 +47,8 @@ shared_context 'operation' do
43
47
  allow(cxt).to receive(:primary?) { true }
44
48
  allow(cxt).to receive(:secondary?) { false }
45
49
  allow(cxt).to receive(:standalone?) { false }
46
- allow(cxt).to receive(:slave_ok?) { false }
50
+ allow(cxt).to receive(:cluster) { cluster_double }
51
+ allow(cluster_double).to receive(:single?) { false }
47
52
  end
48
53
  end
49
54
  let(:secondary_context) do
@@ -55,7 +60,8 @@ shared_context 'operation' do
55
60
  allow(cxt).to receive(:secondary?) { true }
56
61
  allow(cxt).to receive(:primary?) { false }
57
62
  allow(cxt).to receive(:standalone?) { false }
58
- allow(cxt).to receive(:slave_ok?) { false }
63
+ allow(cxt).to receive(:cluster) { cluster_double }
64
+ allow(cluster_double).to receive(:single?) { false }
59
65
  end
60
66
  end
61
67
  let(:secondary_context_slave) do
@@ -67,7 +73,8 @@ shared_context 'operation' do
67
73
  allow(cxt).to receive(:secondary?) { true }
68
74
  allow(cxt).to receive(:primary?) { false }
69
75
  allow(cxt).to receive(:standalone?) { false }
70
- allow(cxt).to receive(:slave_ok?) { true }
76
+ allow(cxt).to receive(:cluster) { cluster_double }
77
+ allow(cluster_double).to receive(:single?) { true }
71
78
  end
72
79
  end
73
80
  let(:primary_context_2_4_version) do
@@ -78,7 +85,8 @@ shared_context 'operation' do
78
85
  allow(cxt).to receive(:primary?) { true }
79
86
  allow(cxt).to receive(:secondary?) { false }
80
87
  allow(cxt).to receive(:standalone?) { false }
81
- allow(cxt).to receive(:slave_ok?) { false }
88
+ allow(cxt).to receive(:cluster) { cluster_double }
89
+ allow(cluster_double).to receive(:single?) { false }
82
90
  allow(cxt).to receive(:features) { features_2_4 }
83
91
  end
84
92
  end
@@ -13,7 +13,7 @@ def server(mode, options = {})
13
13
  listeners = Mongo::Event::Listeners.new
14
14
  address = Mongo::Address.new('127.0.0.1:27017')
15
15
 
16
- server = Mongo::Server.new(address, listeners, TEST_OPTIONS)
16
+ server = Mongo::Server.new(address, double('cluster'), listeners, TEST_OPTIONS)
17
17
  description = Mongo::Server::Description.new(address, ismaster, average_round_trip_time)
18
18
  server.tap do |s|
19
19
  allow(s).to receive(:description).and_return(description)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Brock
@@ -32,7 +32,7 @@ cert_chain:
32
32
  o2UXDbWtz5PqoFd8EgNJAn3+BG1pwC9S9pVFG3WPucfAx/bE8iq/vvchHei5Y/Vo
33
33
  aAz5f/hY4zFeYWvGDBHYEXE1rTN2hhMSyJscPcFbmz0=
34
34
  -----END CERTIFICATE-----
35
- date: 2015-06-11 00:00:00.000000000 Z
35
+ date: 2015-06-24 00:00:00.000000000 Z
36
36
  dependencies:
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bson
@@ -129,11 +129,11 @@ files:
129
129
  - lib/mongo/error/socket_timeout_error.rb
130
130
  - lib/mongo/error/unsupported_features.rb
131
131
  - lib/mongo/event.rb
132
+ - lib/mongo/event/description_changed.rb
132
133
  - lib/mongo/event/listeners.rb
133
134
  - lib/mongo/event/primary_elected.rb
134
135
  - lib/mongo/event/publisher.rb
135
- - lib/mongo/event/server_added.rb
136
- - lib/mongo/event/server_removed.rb
136
+ - lib/mongo/event/standalone_discovered.rb
137
137
  - lib/mongo/event/subscriber.rb
138
138
  - lib/mongo/grid.rb
139
139
  - lib/mongo/grid/file.rb
@@ -219,9 +219,9 @@ files:
219
219
  - lib/mongo/server/description.rb
220
220
  - lib/mongo/server/description/features.rb
221
221
  - lib/mongo/server/description/inspector.rb
222
+ - lib/mongo/server/description/inspector/description_changed.rb
222
223
  - lib/mongo/server/description/inspector/primary_elected.rb
223
- - lib/mongo/server/description/inspector/server_added.rb
224
- - lib/mongo/server/description/inspector/server_removed.rb
224
+ - lib/mongo/server/description/inspector/standalone_discovered.rb
225
225
  - lib/mongo/server/monitor.rb
226
226
  - lib/mongo/server/monitor/connection.rb
227
227
  - lib/mongo/server_selector.rb
@@ -259,6 +259,7 @@ files:
259
259
  - spec/mongo/cluster/topology/replica_set_spec.rb
260
260
  - spec/mongo/cluster/topology/sharded_spec.rb
261
261
  - spec/mongo/cluster/topology/single_spec.rb
262
+ - spec/mongo/cluster/topology/unknown_spec.rb
262
263
  - spec/mongo/cluster/topology_spec.rb
263
264
  - spec/mongo/cluster_spec.rb
264
265
  - spec/mongo/collection/view/aggregation_spec.rb
@@ -320,9 +321,8 @@ files:
320
321
  - spec/mongo/server/connection_pool_spec.rb
321
322
  - spec/mongo/server/connection_spec.rb
322
323
  - spec/mongo/server/description/features_spec.rb
324
+ - spec/mongo/server/description/inspector/description_changed_spec.rb
323
325
  - spec/mongo/server/description/inspector/primary_elected_spec.rb
324
- - spec/mongo/server/description/inspector/server_added_spec.rb
325
- - spec/mongo/server/description/inspector/server_removed_spec.rb
326
326
  - spec/mongo/server/description_spec.rb
327
327
  - spec/mongo/server/monitor_spec.rb
328
328
  - spec/mongo/server_discovery_and_monitoring_spec.rb
@@ -393,6 +393,7 @@ files:
393
393
  - spec/support/sdam/sharded/multiple_mongoses.yml
394
394
  - spec/support/sdam/sharded/non_mongos_removed.yml
395
395
  - spec/support/sdam/sharded/normalize_uri_case.yml
396
+ - spec/support/sdam/sharded/single_mongos.yml
396
397
  - spec/support/sdam/single/direct_connection_external_ip.yml
397
398
  - spec/support/sdam/single/direct_connection_mongos.yml
398
399
  - spec/support/sdam/single/direct_connection_rsarbiter.yml
@@ -483,6 +484,7 @@ test_files:
483
484
  - spec/mongo/cluster/topology/replica_set_spec.rb
484
485
  - spec/mongo/cluster/topology/sharded_spec.rb
485
486
  - spec/mongo/cluster/topology/single_spec.rb
487
+ - spec/mongo/cluster/topology/unknown_spec.rb
486
488
  - spec/mongo/cluster/topology_spec.rb
487
489
  - spec/mongo/cluster_spec.rb
488
490
  - spec/mongo/collection/view/aggregation_spec.rb
@@ -544,9 +546,8 @@ test_files:
544
546
  - spec/mongo/server/connection_pool_spec.rb
545
547
  - spec/mongo/server/connection_spec.rb
546
548
  - spec/mongo/server/description/features_spec.rb
549
+ - spec/mongo/server/description/inspector/description_changed_spec.rb
547
550
  - spec/mongo/server/description/inspector/primary_elected_spec.rb
548
- - spec/mongo/server/description/inspector/server_added_spec.rb
549
- - spec/mongo/server/description/inspector/server_removed_spec.rb
550
551
  - spec/mongo/server/description_spec.rb
551
552
  - spec/mongo/server/monitor_spec.rb
552
553
  - spec/mongo/server_discovery_and_monitoring_spec.rb
@@ -617,6 +618,7 @@ test_files:
617
618
  - spec/support/sdam/sharded/multiple_mongoses.yml
618
619
  - spec/support/sdam/sharded/non_mongos_removed.yml
619
620
  - spec/support/sdam/sharded/normalize_uri_case.yml
621
+ - spec/support/sdam/sharded/single_mongos.yml
620
622
  - spec/support/sdam/single/direct_connection_external_ip.yml
621
623
  - spec/support/sdam/single/direct_connection_mongos.yml
622
624
  - spec/support/sdam/single/direct_connection_rsarbiter.yml