mirror of
https://github.com/fluencelabs/redis
synced 2025-04-13 20:56:03 +00:00
Cluster test: basic cluster nodes info access functions.
This commit is contained in:
parent
0bcc7cb4bf
commit
e1b129811a
@ -4,4 +4,41 @@
|
|||||||
# This softare is released under the BSD License. See the COPYING file for
|
# This softare is released under the BSD License. See the COPYING file for
|
||||||
# more information.
|
# more information.
|
||||||
|
|
||||||
|
# Returns a parsed CLUSTER NODES output as a list of dictionaries.
|
||||||
|
proc get_cluster_nodes id {
|
||||||
|
set lines [split [R $id cluster nodes] "\r\n"]
|
||||||
|
set nodes {}
|
||||||
|
foreach l $lines {
|
||||||
|
set l [string trim $l]
|
||||||
|
if {$l eq {}} continue
|
||||||
|
set args [split $l]
|
||||||
|
set node [dict create \
|
||||||
|
id [lindex $args 0] \
|
||||||
|
addr [lindex $args 1] \
|
||||||
|
flags [split [lindex $args 2] ,] \
|
||||||
|
slaveof [lindex $args 3] \
|
||||||
|
ping_sent [lindex $args 4] \
|
||||||
|
pong_recv [lindex $args 5] \
|
||||||
|
config_epoch [lindex $args 6] \
|
||||||
|
linkstate [lindex $args 7] \
|
||||||
|
slots [lrange $args 8 -1] \
|
||||||
|
]
|
||||||
|
lappend nodes $node
|
||||||
|
}
|
||||||
|
return $nodes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test node for flag.
|
||||||
|
proc has_flag {node flag} {
|
||||||
|
expr {[lsearch -exact [dict get $node flags] $flag] != -1}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Returns the parsed myself node entry as a dictionary.
|
||||||
|
proc get_myself id {
|
||||||
|
set nodes [get_cluster_nodes $id]
|
||||||
|
foreach n $nodes {
|
||||||
|
if {[has_flag $n myself]} {return $n}
|
||||||
|
}
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user