File tree Expand file tree Collapse file tree 3 files changed +373
-33
lines changed
src/MongoDB.Driver.Core/Core/Clusters
tests/MongoDB.Driver.Core.Tests/Specifications/server-discovery-and-monitoring/tests/rs Expand file tree Collapse file tree 3 files changed +373
-33
lines changed Original file line number Diff line number Diff line change @@ -248,18 +248,36 @@ public ClusterDescription WithType(ClusterType value)
248
248
249
249
foreach ( var server in servers )
250
250
{
251
- if ( server . LogicalSessionTimeout == null )
251
+ if ( IsDataBearingServer ( server ) )
252
252
{
253
- return null ;
254
- }
253
+ if ( server . LogicalSessionTimeout == null )
254
+ {
255
+ return null ;
256
+ }
255
257
256
- if ( logicalSessionTimeout == null || server . LogicalSessionTimeout . Value < logicalSessionTimeout . Value )
257
- {
258
- logicalSessionTimeout = server . LogicalSessionTimeout ;
258
+ if ( logicalSessionTimeout == null || server . LogicalSessionTimeout . Value < logicalSessionTimeout . Value )
259
+ {
260
+ logicalSessionTimeout = server . LogicalSessionTimeout ;
261
+ }
259
262
}
260
263
}
261
264
262
265
return logicalSessionTimeout ;
263
266
}
267
+
268
+ private bool IsDataBearingServer ( ServerDescription server )
269
+ {
270
+ switch ( server . Type )
271
+ {
272
+ case ServerType . Standalone :
273
+ case ServerType . ReplicaSetPrimary :
274
+ case ServerType . ReplicaSetSecondary :
275
+ case ServerType . ShardRouter :
276
+ return true ;
277
+
278
+ default :
279
+ return false ;
280
+ }
281
+ }
264
282
}
265
283
}
Original file line number Diff line number Diff line change 11
11
"ismaster" : true ,
12
12
"hosts" : [
13
13
" a:27017" ,
14
- " b:27017"
14
+ " b:27017" ,
15
+ " c:27017" ,
16
+ " d:27017" ,
17
+ " e:27017"
15
18
],
16
19
"setName" : " rs" ,
17
- "logicalSessionTimeoutMinutes" : 1 ,
20
+ "logicalSessionTimeoutMinutes" : 3 ,
21
+ "minWireVersion" : 0 ,
22
+ "maxWireVersion" : 6
23
+ }
24
+ ]
25
+ ],
26
+ "outcome" : {
27
+ "servers" : {
28
+ "a:27017" : {
29
+ "type" : " RSPrimary" ,
30
+ "setName" : " rs"
31
+ },
32
+ "b:27017" : {
33
+ "type" : " Unknown"
34
+ },
35
+ "c:27017" : {
36
+ "type" : " Unknown"
37
+ },
38
+ "d:27017" : {
39
+ "type" : " Unknown"
40
+ },
41
+ "e:27017" : {
42
+ "type" : " Unknown"
43
+ }
44
+ },
45
+ "topologyType" : " ReplicaSetWithPrimary" ,
46
+ "logicalSessionTimeoutMinutes" : 3 ,
47
+ "setName" : " rs"
48
+ }
49
+ },
50
+ {
51
+ "responses" : [
52
+ [
53
+ " d:27017" ,
54
+ {
55
+ "ok" : 1 ,
56
+ "ismaster" : false ,
57
+ "isreplicaset" : true ,
18
58
"minWireVersion" : 0 ,
19
59
"maxWireVersion" : 6
20
60
}
21
- ],
61
+ ]
62
+ ],
63
+ "outcome" : {
64
+ "servers" : {
65
+ "a:27017" : {
66
+ "type" : " RSPrimary" ,
67
+ "setName" : " rs"
68
+ },
69
+ "b:27017" : {
70
+ "type" : " Unknown"
71
+ },
72
+ "c:27017" : {
73
+ "type" : " Unknown"
74
+ },
75
+ "d:27017" : {
76
+ "type" : " RSGhost"
77
+ },
78
+ "e:27017" : {
79
+ "type" : " Unknown"
80
+ }
81
+ },
82
+ "topologyType" : " ReplicaSetWithPrimary" ,
83
+ "logicalSessionTimeoutMinutes" : 3 ,
84
+ "setName" : " rs"
85
+ }
86
+ },
87
+ {
88
+ "responses" : [
89
+ [
90
+ " e:27017" ,
91
+ {
92
+ "ok" : 1 ,
93
+ "ismaster" : false ,
94
+ "hosts" : [
95
+ " a:27017" ,
96
+ " b:27017" ,
97
+ " c:27017" ,
98
+ " d:27017" ,
99
+ " e:27017"
100
+ ],
101
+ "setName" : " rs" ,
102
+ "arbiterOnly" : true ,
103
+ "minWireVersion" : 0 ,
104
+ "maxWireVersion" : 6
105
+ }
106
+ ]
107
+ ],
108
+ "outcome" : {
109
+ "servers" : {
110
+ "a:27017" : {
111
+ "type" : " RSPrimary" ,
112
+ "setName" : " rs"
113
+ },
114
+ "b:27017" : {
115
+ "type" : " Unknown"
116
+ },
117
+ "c:27017" : {
118
+ "type" : " Unknown"
119
+ },
120
+ "d:27017" : {
121
+ "type" : " RSGhost"
122
+ },
123
+ "e:27017" : {
124
+ "type" : " RSArbiter" ,
125
+ "setName" : " rs"
126
+ }
127
+ },
128
+ "topologyType" : " ReplicaSetWithPrimary" ,
129
+ "logicalSessionTimeoutMinutes" : 3 ,
130
+ "setName" : " rs"
131
+ }
132
+ },
133
+ {
134
+ "responses" : [
22
135
[
23
136
" b:27017" ,
24
137
{
27
140
"secondary" : true ,
28
141
"hosts" : [
29
142
" a:27017" ,
30
- " b:27017"
143
+ " b:27017" ,
144
+ " c:27017" ,
145
+ " d:27017" ,
146
+ " e:27017"
31
147
],
32
148
"setName" : " rs" ,
33
149
"logicalSessionTimeoutMinutes" : 2 ,
45
161
"b:27017" : {
46
162
"type" : " RSSecondary" ,
47
163
"setName" : " rs"
164
+ },
165
+ "c:27017" : {
166
+ "type" : " Unknown"
167
+ },
168
+ "d:27017" : {
169
+ "type" : " RSGhost"
170
+ },
171
+ "e:27017" : {
172
+ "type" : " RSArbiter" ,
173
+ "setName" : " rs"
48
174
}
49
175
},
50
176
"topologyType" : " ReplicaSetWithPrimary" ,
51
- "logicalSessionTimeoutMinutes" : 1 ,
177
+ "logicalSessionTimeoutMinutes" : 2 ,
52
178
"setName" : " rs"
53
179
}
54
180
},
55
181
{
56
182
"responses" : [
57
183
[
58
- " a :27017" ,
184
+ " c :27017" ,
59
185
{
60
186
"ok" : 1 ,
61
- "ismaster" : true ,
62
- "hosts" : [
63
- " a:27017" ,
64
- " b:27017"
65
- ],
187
+ "ismaster" : false ,
66
188
"setName" : " rs" ,
189
+ "hidden" : true ,
67
190
"logicalSessionTimeoutMinutes" : 1 ,
68
191
"minWireVersion" : 0 ,
69
192
"maxWireVersion" : 6
70
193
}
71
- ],
194
+ ]
195
+ ],
196
+ "outcome" : {
197
+ "servers" : {
198
+ "a:27017" : {
199
+ "type" : " RSPrimary" ,
200
+ "setName" : " rs"
201
+ },
202
+ "b:27017" : {
203
+ "type" : " RSSecondary" ,
204
+ "setName" : " rs"
205
+ },
206
+ "c:27017" : {
207
+ "type" : " RSOther" ,
208
+ "setName" : " rs"
209
+ },
210
+ "d:27017" : {
211
+ "type" : " RSGhost"
212
+ },
213
+ "e:27017" : {
214
+ "type" : " RSArbiter" ,
215
+ "setName" : " rs"
216
+ }
217
+ },
218
+ "topologyType" : " ReplicaSetWithPrimary" ,
219
+ "logicalSessionTimeoutMinutes" : 2 ,
220
+ "setName" : " rs"
221
+ }
222
+ },
223
+ {
224
+ "responses" : [
72
225
[
73
226
" b:27017" ,
74
227
{
77
230
"secondary" : true ,
78
231
"hosts" : [
79
232
" a:27017" ,
80
- " b:27017"
233
+ " b:27017" ,
234
+ " c:27017" ,
235
+ " d:27017" ,
236
+ " e:27017"
81
237
],
82
238
"setName" : " rs" ,
83
239
"logicalSessionTimeoutMinutes" : null ,
95
251
"b:27017" : {
96
252
"type" : " RSSecondary" ,
97
253
"setName" : " rs"
254
+ },
255
+ "c:27017" : {
256
+ "type" : " RSOther" ,
257
+ "setName" : " rs"
258
+ },
259
+ "d:27017" : {
260
+ "type" : " RSGhost"
261
+ },
262
+ "e:27017" : {
263
+ "type" : " RSArbiter" ,
264
+ "setName" : " rs"
98
265
}
99
266
},
100
267
"topologyType" : " ReplicaSetWithPrimary" ,
You can’t perform that action at this time.
0 commit comments