main: add genClusterString func and its test

release-2.0
Yicheng Qin 2014-10-23 14:19:40 -07:00
parent 8eee8c260e
commit 5fbe6c7134
2 changed files with 40 additions and 5 deletions

15
main.go
View File

@ -29,6 +29,7 @@ import (
"github.com/coreos/etcd/pkg"
flagtypes "github.com/coreos/etcd/pkg/flags"
"github.com/coreos/etcd/pkg/transport"
"github.com/coreos/etcd/pkg/types"
"github.com/coreos/etcd/proxy"
)
@ -277,11 +278,7 @@ func setupCluster() error {
err = nil
switch {
case set["discovery"]:
addrs := make([]string, 0)
for _, u := range apurls {
addrs = append(addrs, fmt.Sprintf("%v=%v", *name, u.String()))
}
clusterStr := strings.Join(addrs, ",")
clusterStr := genClusterString(*name, apurls)
cluster, err = etcdserver.NewClusterFromString(*durl, clusterStr)
case set["initial-cluster"]:
fallthrough
@ -292,3 +289,11 @@ func setupCluster() error {
}
return err
}
func genClusterString(name string, urls types.URLs) string {
addrs := make([]string, 0)
for _, u := range urls {
addrs = append(addrs, fmt.Sprintf("%v=%v", name, u.String()))
}
return strings.Join(addrs, ",")
}

30
main_test.go Normal file
View File

@ -0,0 +1,30 @@
package main
import (
"testing"
"github.com/coreos/etcd/pkg/types"
)
func TestGenClusterString(t *testing.T) {
tests := []struct {
name string
urls []string
wstr string
}{
{
"node1", []string{"http://0.0.0.0:2379", "http://1.1.1.1:2379"},
"node1=http://0.0.0.0:2379,node1=http://1.1.1.1:2379",
},
}
for i, tt := range tests {
urls, err := types.NewURLs(tt.urls)
if err != nil {
t.Fatalf("unexpected new urls error: %v", err)
}
str := genClusterString(tt.name, urls)
if str != tt.wstr {
t.Errorf("#%d: cluster = %s, want %s", i, str, tt.wstr)
}
}
}