Browse Source

main: add genClusterString func and its test

Yicheng Qin 11 years ago
parent
commit
5fbe6c7134
2 changed files with 40 additions and 5 deletions
  1. 10 5
      main.go
  2. 30 0
      main_test.go

+ 10 - 5
main.go

@@ -29,6 +29,7 @@ import (
 	"github.com/coreos/etcd/pkg"
 	"github.com/coreos/etcd/pkg"
 	flagtypes "github.com/coreos/etcd/pkg/flags"
 	flagtypes "github.com/coreos/etcd/pkg/flags"
 	"github.com/coreos/etcd/pkg/transport"
 	"github.com/coreos/etcd/pkg/transport"
+	"github.com/coreos/etcd/pkg/types"
 	"github.com/coreos/etcd/proxy"
 	"github.com/coreos/etcd/proxy"
 )
 )
 
 
@@ -277,11 +278,7 @@ func setupCluster() error {
 	err = nil
 	err = nil
 	switch {
 	switch {
 	case set["discovery"]:
 	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)
 		cluster, err = etcdserver.NewClusterFromString(*durl, clusterStr)
 	case set["initial-cluster"]:
 	case set["initial-cluster"]:
 		fallthrough
 		fallthrough
@@ -292,3 +289,11 @@ func setupCluster() error {
 	}
 	}
 	return err
 	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 - 0
main_test.go

@@ -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)
+		}
+	}
+}