From b86fecfd8086aaa55cf485efe4e51a112016a258 Mon Sep 17 00:00:00 2001 From: Jason Wilder Date: Fri, 17 Jul 2015 12:03:04 -0600 Subject: [PATCH] Move setPeers to raft state --- meta/state.go | 19 +++++++++++++++++++ meta/store.go | 10 +--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/meta/state.go b/meta/state.go index 975ea4e689..58815d1c01 100644 --- a/meta/state.go +++ b/meta/state.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "math/rand" + "net" "os" "path/filepath" "time" @@ -23,6 +24,7 @@ type raftState interface { leaderCh() <-chan bool raftEnabled() bool sync(index uint64, timeout time.Duration) error + setPeers(addrs []string) error invalidate() error close() error } @@ -156,6 +158,19 @@ func (r *localRaft) sync(index uint64, timeout time.Duration) error { } } +// setPeers sets a list of peers in the cluster. +func (r *localRaft) setPeers(addrs []string) error { + a := make([]string, len(addrs)) + for i, s := range addrs { + addr, err := net.ResolveTCPAddr("tcp", s) + if err != nil { + return fmt.Errorf("cannot resolve addr: %s, err=%s", s, err) + } + a[i] = addr.String() + } + return r.store.raft.SetPeers(a).Error() +} + func (r *localRaft) leader() string { if r.store.raft == nil { return "" @@ -221,6 +236,10 @@ func (r *remoteRaft) invalidate() error { return nil } +func (r *remoteRaft) setPeers(addrs []string) error { + return nil +} + func (r *remoteRaft) openRaft() error { go func() { for { diff --git a/meta/store.go b/meta/store.go index cc8dd53168..53f3df9279 100644 --- a/meta/store.go +++ b/meta/store.go @@ -448,15 +448,7 @@ func (s *Store) LeaderCh() <-chan bool { // SetPeers sets a list of peers in the cluster. func (s *Store) SetPeers(addrs []string) error { - a := make([]string, len(addrs)) - for i, s := range addrs { - addr, err := net.ResolveTCPAddr("tcp", s) - if err != nil { - return fmt.Errorf("cannot resolve addr: %s, err=%s", s, err) - } - a[i] = addr.String() - } - return s.raft.SetPeers(a).Error() + return s.raftState.setPeers(addrs) } // AddPeer adds addr to the list of peers in the cluster.