From 92dd76c8ee1cf6dd44644be018ad20f9f4533267 Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 29 Sep 2011 14:44:15 +0200 Subject: [PATCH] redis-trib: all node information into a single hash --- src/redis-trib.rb | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/src/redis-trib.rb b/src/redis-trib.rb index 7086b4b2..9859b16c 100755 --- a/src/redis-trib.rb +++ b/src/redis-trib.rb @@ -18,11 +18,11 @@ class ClusterNode exit 1 end @r = nil - @host = s[0] - @port = s[1] - @slots = {} - @dirty = false - @info = nil + @info = {} + @info[:host] = s[0] + @info[:port] = s[1] + @info[:slots] = {} + @dirty = false # True if we need to flush slots info into node. @friends = [] end @@ -31,18 +31,18 @@ class ClusterNode end def slots - @slots + @info[:slots] end def to_s - "#{@host}:#{@port}" + "#{@info[:host]}:#{@info[:port]}" end def connect(o={}) return if @r xputs "Connecting to node #{self}: " begin - @r = Redis.new(:host => @host, :port => @port) + @r = Redis.new(:host => @info[:host], :port => @info[:port]) @r.ping rescue puts "ERROR" @@ -85,8 +85,8 @@ class ClusterNode :link_status => link_status } if info[:flags].index("myself") - @info = info - @slots = {} + @info = @info.merge(info) + @info[:slots] = {} slots.split(",").each{|s| if s.index("-") start,stop = s.split("-") @@ -113,7 +113,7 @@ class ClusterNode def add_slots(slots) slots.each{|s| - @slots[s] = :new + @info[:slots][s] = :new } @dirty = true end @@ -121,10 +121,10 @@ class ClusterNode def flush_node_config return if !@dirty new = [] - @slots.each{|s,val| + @info[:slots].each{|s,val| if val == :new new << s - @slots[s] = true + @info[:slots][s] = true end } @r.cluster("addslots",*new) @@ -140,7 +140,7 @@ class ClusterNode # First step: we want an increasing array of integers # for instance: [1,2,3,4,5,8,9,20,21,22,23,24,25,30] - slots = @slots.keys.sort + slots = @info[:slots].keys.sort # As we want to aggregate adiacent slots we convert all the # slot integers into ranges (with just one element) @@ -167,12 +167,7 @@ class ClusterNode end def info - { - :host => @host, - :port => @port, - :slots => @slots, - :dirty => @dirty - } + @info end def is_dirty? -- 2.47.2