// Find possible addresses for cluster named name. func lookup(b *doozer.Conn, name string) (as []string) { rev, err := b.Rev() if err != nil { panic(err) } path := "/ctl/ns/" + name names, err := b.Getdir(path, rev, 0, -1) if err == doozer.ErrNoEnt { return nil } else if err, ok := err.(*doozer.Error); ok && err.Err == doozer.ErrNoEnt { return nil } else if err != nil { panic(err) } path += "/" for _, name := range names { body, _, err := b.Get(path+name, &rev) if err != nil { panic(err) } as = append(as, string(body)) } return as }