From 2fd5a9863bd65be4737a7cb3afd99b8c59d26b24 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Mon, 22 Sep 2014 11:13:49 -0700 Subject: [PATCH] discovery: add d.selfKey() --- discovery/discovery.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/discovery/discovery.go b/discovery/discovery.go index 8848ee3c0..f2ed4a0de 100644 --- a/discovery/discovery.go +++ b/discovery/discovery.go @@ -54,15 +54,14 @@ func (d *discovery) discover() (*etcdhttp.Peers, error) { } func (d *discovery) createSelf() error { - self := path.Join("/", d.cluster, fmt.Sprintf("%d", d.id)) // create self key - resp, err := d.c.Create(self, string(d.ctx), 0) + resp, err := d.c.Create(d.selfKey(), string(d.ctx), 0) if err != nil { return err } // ensure self appears on the server we connected to - w := d.c.Watch(self, resp.Node.CreatedIndex) + w := d.c.Watch(d.selfKey(), resp.Node.CreatedIndex) if _, err = w.Next(); err != nil { return err } @@ -70,7 +69,6 @@ func (d *discovery) createSelf() error { } func (d *discovery) checkCluster() (client.Nodes, int, error) { - self := path.Join("/", d.cluster, fmt.Sprintf("%d", d.id)) resp, err := d.c.Get(d.cluster) if err != nil { return nil, 0, err @@ -93,7 +91,7 @@ func (d *discovery) checkCluster() (client.Nodes, int, error) { // find self position for i := range nodes { - if nodes[i].Key == self { + if nodes[i].Key == d.selfKey() { break } if i >= size-1 { @@ -121,6 +119,10 @@ func (d *discovery) waitNodes(nodes client.Nodes, size int) (client.Nodes, error return all, nil } +func (d *discovery) selfKey() string { + return path.Join("/", d.cluster, fmt.Sprintf("%d", d.id)) +} + func nodesToPeers(ns client.Nodes) (*etcdhttp.Peers, error) { s := make([]string, len(ns)) for i, n := range ns {