本文整理汇总了Golang中github.com/coreos/go-etcd/etcd.Client.AddChild方法的典型用法代码示例。如果您正苦于以下问题:Golang Client.AddChild方法的具体用法?Golang Client.AddChild怎么用?Golang Client.AddChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/coreos/go-etcd/etcd.Client
的用法示例。
在下文中一共展示了Client.AddChild方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: GetIndex
func GetIndex(client *etcd.Client, basedir string, jobname string, ip string) (int, error) {
jobdir := "/jobs" + "/" + jobname
response, err := client.Get(jobdir, true, true)
if err == nil {
for i := 0; i < response.Node.Nodes.Len(); i++ {
if response.Node.Nodes[i].Value == ip {
return i, nil
}
}
}
response, err = client.AddChild(jobdir, ip, 0)
if err != nil {
fmt.Printf("use etcd to get index error: %v\n", err)
return 0, err
}
mykey := response.Node.Key
response, err = client.Get(jobdir, true, true)
if err != nil {
fmt.Printf("get etcd jobdir error: %v\n", err)
return 0, err
}
for i := 0; i < response.Node.Nodes.Len(); i++ {
if response.Node.Nodes[i].Key == mykey {
return i, nil
}
}
// this line would never reach.
return 0, errors.New("etcd add child error!")
}
示例2: addLockDirChild
func addLockDirChild(client *etcd.Client, key string) (*etcd.Response, error) {
hostname, err := os.Hostname()
if err != nil {
return nil, errgo.Notef(err, "fail to get hostname")
}
client.SyncCluster()
return client.AddChild(key, hostname, 0)
}