From 161a6826538945851cb367b1f743461265542839 Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期三, 04 九月 2019 16:27:40 +0800 Subject: [PATCH] 合并晓龙因业务而增加的更新 --- agent.go | 39 +++++++++++++++++++++++---------------- 1 files changed, 23 insertions(+), 16 deletions(-) diff --git a/agent.go b/agent.go index 1f84e47..0a6b6ac 100644 --- a/agent.go +++ b/agent.go @@ -25,6 +25,7 @@ "io/ioutil" "net" "os" + "strconv" //"os" "strings" @@ -444,14 +445,14 @@ } //Init serf Init -func Init(clusterID string, password string, nodeID string, ips []string) (*Agent, error) { +func Init(clusterID string, password string, nodeID string, addrs []string) (*Agent, error) { agent, err := InitNode(clusterID, password, nodeID) if err != nil { fmt.Printf("InitNode failed, error: %s", err) return agent, err } - err = agent.JoinByNodeIP(ips) + err = agent.JoinByNodeAddrs(addrs) if err != nil { fmt.Printf("JoinByNodeIP failed, error: %s", err) return agent, err @@ -496,6 +497,21 @@ return agent, nil } +func (a *Agent) JoinByNodeAddrs(addrs []string) error { + var nodes []string + + if len(addrs) == 0 { + return fmt.Errorf("No Nodes To Join!") + } + for _, addr := range addrs { + nodes = append(nodes, addr) + } + + a.Agent.Join(nodes, true) + + return nil +} + func (a *Agent) JoinByNodeIP(ips []string) error { var nodes []string @@ -509,30 +525,21 @@ n, err := a.Agent.Join(nodes, true) if err != nil || n == 0 { - //a.Stop() - //fmt.Println("Stop node") return fmt.Errorf("Error Encrypt Key!") } return err } -type Node struct { - clusterID string - NodeID string - IP string - isAlive int //StatusNone:0, StatusAlive:1, StatusLeaving:2, StatusLeft:3, StatusFailed:4 -} - -func (a *Agent) GetNodes() (nodes []Node) { - var node Node +func (a *Agent) GetNodes() (nodes []NodeInfo) { + var node NodeInfo fmt.Println("a.conf.ClusterID:", a.conf.ClusterID) mbs := a.GroupMembers(a.conf.ClusterID) for _, mb := range mbs { node.NodeID = mb.Name - node.IP = mb.Addr.String() - node.isAlive = int(mb.Status) - node.clusterID = mb.Tags[tagKeyClusterID] + node.NodeAddress = mb.Addr.String() + ":" + strconv.Itoa(int(mb.Port)) + node.IsAlive = int(mb.Status) + node.ClusterID = mb.Tags[tagKeyClusterID] nodes = append(nodes, node) } -- Gitblit v1.8.0