@@ -20,6 +20,7 @@ def test_connection_prelude
20
20
end
21
21
end
22
22
23
+ # rubocop:disable Metrics/ClassLength
23
24
class TestNode < TestingWrapper
24
25
def setup
25
26
@test_config = ::RedisClient ::ClusterConfig . new (
@@ -179,6 +180,108 @@ def test_parse_cluster_node_reply_discrete_slots_and_resharding
179
180
assert_equal ( want , got . map ( &:to_h ) )
180
181
end
181
182
183
+ def test_parse_cluster_node_reply_with_hostname
184
+ info = <<~INFO
185
+ 07c37dfeb235213a872192d90877d0cd55635b91 127.0.0.1:30004@31004,localhost slave e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 0 1426238317239 4 connected
186
+ 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 127.0.0.1:30002@31002,localhost master - 0 1426238316232 2 connected 5461-10922
187
+ 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 127.0.0.1:30003@31003,localhost master - 0 1426238318243 3 connected 10923-16383
188
+ 6ec23923021cf3ffec47632106199cb7f496ce01 127.0.0.1:30005@31005,localhost slave 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 0 1426238316232 5 connected
189
+ 824fe116063bc5fcf9f4ffd895bc17aee7731ac3 127.0.0.1:30006@31006,localhost slave 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 0 1426238317741 6 connected
190
+ e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 127.0.0.1:30001@31001,localhost myself,master - 0 0 1 connected 0-5460
191
+ INFO
192
+
193
+ want = [
194
+ { id : '07c37dfeb235213a872192d90877d0cd55635b91' , node_key : 'localhost:30004' , role : 'slave' ,
195
+ primary_id : 'e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca' , ping_sent : '0' , pong_recv : '1426238317239' ,
196
+ config_epoch : '4' , link_state : 'connected' , slots : [ ] } ,
197
+ { id : '67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1' , node_key : 'localhost:30002' , role : 'master' ,
198
+ primary_id : '-' , ping_sent : '0' , pong_recv : '1426238316232' ,
199
+ config_epoch : '2' , link_state : 'connected' , slots : [ [ 5461 , 10_922 ] ] } ,
200
+ { id : '292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f' , node_key : 'localhost:30003' , role : 'master' ,
201
+ primary_id : '-' , ping_sent : '0' , pong_recv : '1426238318243' ,
202
+ config_epoch : '3' , link_state : 'connected' , slots : [ [ 10_923 , 16_383 ] ] } ,
203
+ { id : '6ec23923021cf3ffec47632106199cb7f496ce01' , node_key : 'localhost:30005' , role : 'slave' ,
204
+ primary_id : '67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1' , ping_sent : '0' , pong_recv : '1426238316232' ,
205
+ config_epoch : '5' , link_state : 'connected' , slots : [ ] } ,
206
+ { id : '824fe116063bc5fcf9f4ffd895bc17aee7731ac3' , node_key : 'localhost:30006' , role : 'slave' ,
207
+ primary_id : '292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f' , ping_sent : '0' , pong_recv : '1426238317741' ,
208
+ config_epoch : '6' , link_state : 'connected' , slots : [ ] } ,
209
+ { id : 'e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca' , node_key : 'localhost:30001' , role : 'master' ,
210
+ primary_id : '-' , ping_sent : '0' , pong_recv : '0' , config_epoch : '1' , link_state : 'connected' , slots : [ [ 0 , 5460 ] ] }
211
+ ]
212
+
213
+ got = ::RedisClient ::Cluster ::Node . send ( :parse_cluster_node_reply , info )
214
+ assert_equal ( want , got . map ( &:to_h ) )
215
+ end
216
+
217
+ def test_parse_cluster_node_reply_with_hostname_and_auxiliaries
218
+ info = <<~INFO
219
+ 07c37dfeb235213a872192d90877d0cd55635b91 127.0.0.1:30004@31004,localhost,shard-id=69bc080733d1355567173199cff4a6a039a2f024 slave e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 0 1426238317239 4 connected
220
+ 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 127.0.0.1:30002@31002,localhost,shard-id=114f6674a35b84949fe567f5dfd41415ee776261 master - 0 1426238316232 2 connected 5461-10922
221
+ 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 127.0.0.1:30003@31003,localhost,shard-id=fdb36c73e72dd027bc19811b7c219ef6e55c550e master - 0 1426238318243 3 connected 10923-16383
222
+ 6ec23923021cf3ffec47632106199cb7f496ce01 127.0.0.1:30005@31005,localhost,shard-id=114f6674a35b84949fe567f5dfd41415ee776261 slave 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 0 1426238316232 5 connected
223
+ 824fe116063bc5fcf9f4ffd895bc17aee7731ac3 127.0.0.1:30006@31006,localhost,shard-id=fdb36c73e72dd027bc19811b7c219ef6e55c550e slave 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 0 1426238317741 6 connected
224
+ e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 127.0.0.1:30001@31001,localhost,shard-id=69bc080733d1355567173199cff4a6a039a2f024 myself,master - 0 0 1 connected 0-5460
225
+ INFO
226
+
227
+ want = [
228
+ { id : '07c37dfeb235213a872192d90877d0cd55635b91' , node_key : 'localhost:30004' , role : 'slave' ,
229
+ primary_id : 'e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca' , ping_sent : '0' , pong_recv : '1426238317239' ,
230
+ config_epoch : '4' , link_state : 'connected' , slots : [ ] } ,
231
+ { id : '67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1' , node_key : 'localhost:30002' , role : 'master' ,
232
+ primary_id : '-' , ping_sent : '0' , pong_recv : '1426238316232' ,
233
+ config_epoch : '2' , link_state : 'connected' , slots : [ [ 5461 , 10_922 ] ] } ,
234
+ { id : '292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f' , node_key : 'localhost:30003' , role : 'master' ,
235
+ primary_id : '-' , ping_sent : '0' , pong_recv : '1426238318243' ,
236
+ config_epoch : '3' , link_state : 'connected' , slots : [ [ 10_923 , 16_383 ] ] } ,
237
+ { id : '6ec23923021cf3ffec47632106199cb7f496ce01' , node_key : 'localhost:30005' , role : 'slave' ,
238
+ primary_id : '67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1' , ping_sent : '0' , pong_recv : '1426238316232' ,
239
+ config_epoch : '5' , link_state : 'connected' , slots : [ ] } ,
240
+ { id : '824fe116063bc5fcf9f4ffd895bc17aee7731ac3' , node_key : 'localhost:30006' , role : 'slave' ,
241
+ primary_id : '292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f' , ping_sent : '0' , pong_recv : '1426238317741' ,
242
+ config_epoch : '6' , link_state : 'connected' , slots : [ ] } ,
243
+ { id : 'e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca' , node_key : 'localhost:30001' , role : 'master' ,
244
+ primary_id : '-' , ping_sent : '0' , pong_recv : '0' , config_epoch : '1' , link_state : 'connected' , slots : [ [ 0 , 5460 ] ] }
245
+ ]
246
+
247
+ got = ::RedisClient ::Cluster ::Node . send ( :parse_cluster_node_reply , info )
248
+ assert_equal ( want , got . map ( &:to_h ) )
249
+ end
250
+
251
+ def test_parse_cluster_node_reply_with_auxiliaries
252
+ info = <<~INFO
253
+ 07c37dfeb235213a872192d90877d0cd55635b91 127.0.0.1:30004@31004,,shard-id=69bc080733d1355567173199cff4a6a039a2f024 slave e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 0 1426238317239 4 connected
254
+ 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 127.0.0.1:30002@31002,,shard-id=114f6674a35b84949fe567f5dfd41415ee776261 master - 0 1426238316232 2 connected 5461-10922
255
+ 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 127.0.0.1:30003@31003,,shard-id=fdb36c73e72dd027bc19811b7c219ef6e55c550e master - 0 1426238318243 3 connected 10923-16383
256
+ 6ec23923021cf3ffec47632106199cb7f496ce01 127.0.0.1:30005@31005,,shard-id=114f6674a35b84949fe567f5dfd41415ee776261 slave 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 0 1426238316232 5 connected
257
+ 824fe116063bc5fcf9f4ffd895bc17aee7731ac3 127.0.0.1:30006@31006,,shard-id=fdb36c73e72dd027bc19811b7c219ef6e55c550e slave 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 0 1426238317741 6 connected
258
+ e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 127.0.0.1:30001@31001,,shard-id=69bc080733d1355567173199cff4a6a039a2f024 myself,master - 0 0 1 connected 0-5460
259
+ INFO
260
+
261
+ want = [
262
+ { id : '07c37dfeb235213a872192d90877d0cd55635b91' , node_key : '127.0.0.1:30004' , role : 'slave' ,
263
+ primary_id : 'e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca' , ping_sent : '0' , pong_recv : '1426238317239' ,
264
+ config_epoch : '4' , link_state : 'connected' , slots : [ ] } ,
265
+ { id : '67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1' , node_key : '127.0.0.1:30002' , role : 'master' ,
266
+ primary_id : '-' , ping_sent : '0' , pong_recv : '1426238316232' ,
267
+ config_epoch : '2' , link_state : 'connected' , slots : [ [ 5461 , 10_922 ] ] } ,
268
+ { id : '292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f' , node_key : '127.0.0.1:30003' , role : 'master' ,
269
+ primary_id : '-' , ping_sent : '0' , pong_recv : '1426238318243' ,
270
+ config_epoch : '3' , link_state : 'connected' , slots : [ [ 10_923 , 16_383 ] ] } ,
271
+ { id : '6ec23923021cf3ffec47632106199cb7f496ce01' , node_key : '127.0.0.1:30005' , role : 'slave' ,
272
+ primary_id : '67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1' , ping_sent : '0' , pong_recv : '1426238316232' ,
273
+ config_epoch : '5' , link_state : 'connected' , slots : [ ] } ,
274
+ { id : '824fe116063bc5fcf9f4ffd895bc17aee7731ac3' , node_key : '127.0.0.1:30006' , role : 'slave' ,
275
+ primary_id : '292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f' , ping_sent : '0' , pong_recv : '1426238317741' ,
276
+ config_epoch : '6' , link_state : 'connected' , slots : [ ] } ,
277
+ { id : 'e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca' , node_key : '127.0.0.1:30001' , role : 'master' ,
278
+ primary_id : '-' , ping_sent : '0' , pong_recv : '0' , config_epoch : '1' , link_state : 'connected' , slots : [ [ 0 , 5460 ] ] }
279
+ ]
280
+
281
+ got = ::RedisClient ::Cluster ::Node . send ( :parse_cluster_node_reply , info )
282
+ assert_equal ( want , got . map ( &:to_h ) )
283
+ end
284
+
182
285
def test_parse_cluster_node_reply_failure_link_state
183
286
info = <<~INFO
184
287
07c37dfeb235213a872192d90877d0cd55635b91 127.0.0.1:30004@31004 slave e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 0 1426238317239 4 disconnected
@@ -506,5 +609,6 @@ def test_try_map
506
609
end
507
610
end
508
611
end
612
+ # rubocop:enable Metrics/ClassLength
509
613
end
510
614
end
0 commit comments