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)
248248
249249 foreach ( var server in servers )
250250 {
251- if ( server . LogicalSessionTimeout == null )
251+ if ( IsDataBearingServer ( server ) )
252252 {
253- return null ;
254- }
253+ if ( server . LogicalSessionTimeout == null )
254+ {
255+ return null ;
256+ }
255257
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+ }
259262 }
260263 }
261264
262265 return logicalSessionTimeout ;
263266 }
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+ }
264282 }
265283}
Original file line number Diff line number Diff line change 1111 "ismaster" : true ,
1212 "hosts" : [
1313 " a:27017" ,
14- " b:27017"
14+ " b:27017" ,
15+ " c:27017" ,
16+ " d:27017" ,
17+ " e:27017"
1518 ],
1619 "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 ,
1858 "minWireVersion" : 0 ,
1959 "maxWireVersion" : 6
2060 }
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" : [
22135 [
23136 " b:27017" ,
24137 {
27140 "secondary" : true ,
28141 "hosts" : [
29142 " a:27017" ,
30- " b:27017"
143+ " b:27017" ,
144+ " c:27017" ,
145+ " d:27017" ,
146+ " e:27017"
31147 ],
32148 "setName" : " rs" ,
33149 "logicalSessionTimeoutMinutes" : 2 ,
45161 "b:27017" : {
46162 "type" : " RSSecondary" ,
47163 "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"
48174 }
49175 },
50176 "topologyType" : " ReplicaSetWithPrimary" ,
51- "logicalSessionTimeoutMinutes" : 1 ,
177+ "logicalSessionTimeoutMinutes" : 2 ,
52178 "setName" : " rs"
53179 }
54180 },
55181 {
56182 "responses" : [
57183 [
58- " a :27017" ,
184+ " c :27017" ,
59185 {
60186 "ok" : 1 ,
61- "ismaster" : true ,
62- "hosts" : [
63- " a:27017" ,
64- " b:27017"
65- ],
187+ "ismaster" : false ,
66188 "setName" : " rs" ,
189+ "hidden" : true ,
67190 "logicalSessionTimeoutMinutes" : 1 ,
68191 "minWireVersion" : 0 ,
69192 "maxWireVersion" : 6
70193 }
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" : [
72225 [
73226 " b:27017" ,
74227 {
77230 "secondary" : true ,
78231 "hosts" : [
79232 " a:27017" ,
80- " b:27017"
233+ " b:27017" ,
234+ " c:27017" ,
235+ " d:27017" ,
236+ " e:27017"
81237 ],
82238 "setName" : " rs" ,
83239 "logicalSessionTimeoutMinutes" : null ,
95251 "b:27017" : {
96252 "type" : " RSSecondary" ,
97253 "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"
98265 }
99266 },
100267 "topologyType" : " ReplicaSetWithPrimary" ,
You can’t perform that action at this time.
0 commit comments