本文整理汇总了Golang中github.com/ksarch-saas/cc/topo.Node.SetFree方法的典型用法代码示例。如果您正苦于以下问题:Golang Node.SetFree方法的具体用法?Golang Node.SetFree怎么用?Golang Node.SetFree使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/ksarch-saas/cc/topo.Node
的用法示例。
在下文中一共展示了Node.SetFree方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: initClusterTopo
func (self *Inspector) initClusterTopo(seed *topo.Node) (*topo.Cluster, error) {
resp, err := redis.ClusterNodesInRegion(seed.Addr(), self.LocalRegion)
if err != nil && strings.HasPrefix(err.Error(), "ERR Wrong CLUSTER subcommand or number of arguments") {
//server version do not support 'cluster nodes extra [region]'
resp, err = redis.ClusterNodes(seed.Addr())
}
if err != nil {
return nil, err
}
cluster := topo.NewCluster(self.LocalRegion)
var summary topo.SummaryInfo
var nodeidx *topo.Node
var cnt int
lines := strings.Split(resp, "\n")
cnt = 0
for _, line := range lines {
if strings.HasPrefix(line, "# ") {
summary.ReadLine(line)
continue
}
line = strings.TrimSpace(line)
if line == "" {
continue
}
node, myself, err := self.buildNode(line)
if err == ErrNodeInHandShake || err == ErrNodeNoAddr {
continue
}
// Fix 'cluster nodes extra' & 'cluster nodes extra region' compatiable
if node.Region != self.LocalRegion {
continue
}
if err != nil {
return nil, err
}
if node.Ip == "127.0.0.1" {
node.Ip = seed.Ip
}
// 遇到myself,读取该节点的ClusterInfo
if myself {
info, err := redis.FetchClusterInfo(node.Addr())
if err != nil {
return nil, err
}
node.ClusterInfo = info
node.SummaryInfo = summary
}
cluster.AddNode(node)
nodeidx = node
cnt++
}
if cnt == 1 {
if nodeidx.IsMaster() && len(nodeidx.Ranges) == 0 {
glog.Infof("Node %s is free node", nodeidx.Addr())
nodeidx.SetFree(true)
}
}
return cluster, nil
}