From 6e6d1897d8f8185814ef2265b2e1600080ecc021 Mon Sep 17 00:00:00 2001 From: Jonathan Boulle Date: Mon, 27 Oct 2014 09:46:37 -0700 Subject: [PATCH] pkg: move everything into subpackages --- etcdserver/server_test.go | 12 ++--- main.go | 62 +++++++++++----------- pkg/{ => cors}/cors.go | 2 +- pkg/{ => flags}/flag.go | 7 ++- pkg/{ => flags}/flag_test.go | 7 ++- pkg/{test_util.go => testutil/testutil.go} | 2 +- raft/node_test.go | 12 ++--- test | 2 +- 8 files changed, 52 insertions(+), 54 deletions(-) rename pkg/{ => cors}/cors.go (99%) rename pkg/{ => flags}/flag.go (95%) rename pkg/{ => flags}/flag_test.go (95%) rename pkg/{test_util.go => testutil/testutil.go} (98%) diff --git a/etcdserver/server_test.go b/etcdserver/server_test.go index 3a5ae5568..ef72f2daa 100644 --- a/etcdserver/server_test.go +++ b/etcdserver/server_test.go @@ -29,7 +29,7 @@ import ( "github.com/coreos/etcd/Godeps/_workspace/src/code.google.com/p/go.net/context" pb "github.com/coreos/etcd/etcdserver/etcdserverpb" - "github.com/coreos/etcd/pkg" + "github.com/coreos/etcd/pkg/testutil" "github.com/coreos/etcd/raft" "github.com/coreos/etcd/raft/raftpb" "github.com/coreos/etcd/store" @@ -674,7 +674,7 @@ func TestSync(t *testing.T) { t.Errorf("CallSyncTime = %v, want < %v", d, time.Millisecond) } - pkg.ForceGosched() + testutil.ForceGosched() data := n.data() if len(data) != 1 { t.Fatalf("len(proposeData) = %d, want 1", len(data)) @@ -705,7 +705,7 @@ func TestSyncTimeout(t *testing.T) { // give time for goroutine in sync to cancel // TODO: use fake clock - pkg.ForceGosched() + testutil.ForceGosched() w := []action{action{name: "Propose blocked"}} if g := n.Action(); !reflect.DeepEqual(g, w) { t.Errorf("action = %v, want %v", g, w) @@ -849,7 +849,7 @@ func TestRecvSnapshot(t *testing.T) { s.start() n.readyc <- raft.Ready{Snapshot: raftpb.Snapshot{Index: 1}} // make goroutines move forward to receive snapshot - pkg.ForceGosched() + testutil.ForceGosched() s.Stop() wactions := []action{action{name: "Recovery"}} @@ -877,12 +877,12 @@ func TestRecvSlowSnapshot(t *testing.T) { s.start() n.readyc <- raft.Ready{Snapshot: raftpb.Snapshot{Index: 1}} // make goroutines move forward to receive snapshot - pkg.ForceGosched() + testutil.ForceGosched() action := st.Action() n.readyc <- raft.Ready{Snapshot: raftpb.Snapshot{Index: 1}} // make goroutines move forward to receive snapshot - pkg.ForceGosched() + testutil.ForceGosched() s.Stop() if g := st.Action(); !reflect.DeepEqual(g, action) { diff --git a/main.go b/main.go index 0339077bf..ded396ff0 100644 --- a/main.go +++ b/main.go @@ -26,8 +26,8 @@ import ( "github.com/coreos/etcd/etcdserver" "github.com/coreos/etcd/etcdserver/etcdhttp" - "github.com/coreos/etcd/pkg" - flagtypes "github.com/coreos/etcd/pkg/flags" + "github.com/coreos/etcd/pkg/cors" + "github.com/coreos/etcd/pkg/flags" "github.com/coreos/etcd/pkg/transport" "github.com/coreos/etcd/pkg/types" "github.com/coreos/etcd/proxy" @@ -51,8 +51,8 @@ var ( initialClusterName = fs.String("initial-cluster-name", "etcd", "Initial name for the etcd cluster during bootstrap") clusterState = new(etcdserver.ClusterState) - cors = &pkg.CORSInfo{} - proxyFlag = new(flagtypes.Proxy) + corsInfo = &cors.CORSInfo{} + proxyFlag = new(flags.Proxy) clientTLSInfo = transport.TLSInfo{} peerTLSInfo = transport.TLSInfo{} @@ -78,15 +78,15 @@ func init() { fs.Var(clusterState, "initial-cluster-state", "Initial cluster configuration for bootstrapping") clusterState.Set(etcdserver.ClusterStateValueNew) - fs.Var(flagtypes.NewURLsValue("http://localhost:2380,http://localhost:7001"), "initial-advertise-peer-urls", "List of this member's peer URLs to advertise to the rest of the cluster") - fs.Var(flagtypes.NewURLsValue("http://localhost:2379,http://localhost:4001"), "advertise-client-urls", "List of this member's client URLs to advertise to the rest of the cluster") - fs.Var(flagtypes.NewURLsValue("http://localhost:2380,http://localhost:7001"), "listen-peer-urls", "List of URLs to listen on for peer traffic") - fs.Var(flagtypes.NewURLsValue("http://localhost:2379,http://localhost:4001"), "listen-client-urls", "List of URLs to listen on for client traffic") + fs.Var(flags.NewURLsValue("http://localhost:2380,http://localhost:7001"), "initial-advertise-peer-urls", "List of this member's peer URLs to advertise to the rest of the cluster") + fs.Var(flags.NewURLsValue("http://localhost:2379,http://localhost:4001"), "advertise-client-urls", "List of this member's client URLs to advertise to the rest of the cluster") + fs.Var(flags.NewURLsValue("http://localhost:2380,http://localhost:7001"), "listen-peer-urls", "List of URLs to listen on for peer traffic") + fs.Var(flags.NewURLsValue("http://localhost:2379,http://localhost:4001"), "listen-client-urls", "List of URLs to listen on for client traffic") - fs.Var(cors, "cors", "Comma-separated white list of origins for CORS (cross-origin resource sharing).") + fs.Var(corsInfo, "cors", "Comma-separated white list of origins for CORS (cross-origin resource sharing).") - fs.Var(proxyFlag, "proxy", fmt.Sprintf("Valid values include %s", strings.Join(flagtypes.ProxyValues, ", "))) - proxyFlag.Set(flagtypes.ProxyValueOff) + fs.Var(proxyFlag, "proxy", fmt.Sprintf("Valid values include %s", strings.Join(flags.ProxyValues, ", "))) + proxyFlag.Set(flags.ProxyValueOff) fs.StringVar(&clientTLSInfo.CAFile, "ca-file", "", "Path to the client server TLS CA file.") fs.StringVar(&clientTLSInfo.CertFile, "cert-file", "", "Path to the client server TLS cert file.") @@ -97,21 +97,21 @@ func init() { fs.StringVar(&peerTLSInfo.KeyFile, "peer-key-file", "", "Path to the peer server TLS key file.") // backwards-compatibility with v0.4.6 - fs.Var(&flagtypes.IPAddressPort{}, "addr", "DEPRECATED: Use -advertise-client-urls instead.") - fs.Var(&flagtypes.IPAddressPort{}, "bind-addr", "DEPRECATED: Use -listen-client-urls instead.") - fs.Var(&flagtypes.IPAddressPort{}, "peer-addr", "DEPRECATED: Use -initial-advertise-peer-urls instead.") - fs.Var(&flagtypes.IPAddressPort{}, "peer-bind-addr", "DEPRECATED: Use -listen-peer-urls instead.") + fs.Var(&flags.IPAddressPort{}, "addr", "DEPRECATED: Use -advertise-client-urls instead.") + fs.Var(&flags.IPAddressPort{}, "bind-addr", "DEPRECATED: Use -listen-client-urls instead.") + fs.Var(&flags.IPAddressPort{}, "peer-addr", "DEPRECATED: Use -initial-advertise-peer-urls instead.") + fs.Var(&flags.IPAddressPort{}, "peer-bind-addr", "DEPRECATED: Use -listen-peer-urls instead.") for _, f := range ignored { - fs.Var(&pkg.IgnoredFlag{Name: f}, f, "") + fs.Var(&flags.IgnoredFlag{Name: f}, f, "") } - fs.Var(&pkg.DeprecatedFlag{Name: "peers"}, "peers", "DEPRECATED: Use -initial-cluster instead") - fs.Var(&pkg.DeprecatedFlag{Name: "peers-file"}, "peers-file", "DEPRECATED: Use -initial-cluster instead") + fs.Var(&flags.DeprecatedFlag{Name: "peers"}, "peers", "DEPRECATED: Use -initial-cluster instead") + fs.Var(&flags.DeprecatedFlag{Name: "peers-file"}, "peers-file", "DEPRECATED: Use -initial-cluster instead") } func main() { - fs.Usage = pkg.UsageWithIgnoredFlagsFunc(fs, ignored) + fs.Usage = flags.UsageWithIgnoredFlagsFunc(fs, ignored) err := fs.Parse(os.Args[1:]) switch err { case nil: @@ -126,9 +126,9 @@ func main() { os.Exit(0) } - pkg.SetFlagsFromEnv(fs) + flags.SetFlagsFromEnv(fs) - if string(*proxyFlag) == flagtypes.ProxyValueOff { + if string(*proxyFlag) == flags.ProxyValueOff { startEtcd() } else { startProxy() @@ -158,7 +158,7 @@ func startEtcd() { log.Fatal(err) } - acurls, err := pkg.URLsFromFlags(fs, "advertise-client-urls", "addr", clientTLSInfo) + acurls, err := flags.URLsFromFlags(fs, "advertise-client-urls", "addr", clientTLSInfo) if err != nil { log.Fatal(err.Error()) } @@ -175,13 +175,13 @@ func startEtcd() { s := etcdserver.NewServer(cfg) s.Start() - ch := &pkg.CORSHandler{ + ch := &cors.CORSHandler{ Handler: etcdhttp.NewClientHandler(s), - Info: cors, + Info: corsInfo, } ph := etcdhttp.NewPeerHandler(s) - lpurls, err := pkg.URLsFromFlags(fs, "listen-peer-urls", "peer-bind-addr", peerTLSInfo) + lpurls, err := flags.URLsFromFlags(fs, "listen-peer-urls", "peer-bind-addr", peerTLSInfo) if err != nil { log.Fatal(err.Error()) } @@ -200,7 +200,7 @@ func startEtcd() { }() } - lcurls, err := pkg.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo) + lcurls, err := flags.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo) if err != nil { log.Fatal(err.Error()) } @@ -244,16 +244,16 @@ func startProxy() { return cls.ClientURLs() } ph := proxy.NewHandler(pt, uf) - ph = &pkg.CORSHandler{ + ph = &cors.CORSHandler{ Handler: ph, - Info: cors, + Info: corsInfo, } - if string(*proxyFlag) == flagtypes.ProxyValueReadonly { + if string(*proxyFlag) == flags.ProxyValueReadonly { ph = proxy.NewReadonlyHandler(ph) } - lcurls, err := pkg.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo) + lcurls, err := flags.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo) if err != nil { log.Fatal(err.Error()) } @@ -281,7 +281,7 @@ func setupCluster() (*etcdserver.Cluster, error) { if set["discovery"] && set["initial-cluster"] { return nil, fmt.Errorf("both discovery and bootstrap-config are set") } - apurls, err := pkg.URLsFromFlags(fs, "initial-advertise-peer-urls", "addr", peerTLSInfo) + apurls, err := flags.URLsFromFlags(fs, "initial-advertise-peer-urls", "addr", peerTLSInfo) if err != nil { return nil, err } diff --git a/pkg/cors.go b/pkg/cors/cors.go similarity index 99% rename from pkg/cors.go rename to pkg/cors/cors.go index 38242ad20..8f682fe45 100644 --- a/pkg/cors.go +++ b/pkg/cors/cors.go @@ -14,7 +14,7 @@ limitations under the License. */ -package pkg +package cors import ( "fmt" diff --git a/pkg/flag.go b/pkg/flags/flag.go similarity index 95% rename from pkg/flag.go rename to pkg/flags/flag.go index f139294b7..a3cf3597d 100644 --- a/pkg/flag.go +++ b/pkg/flags/flag.go @@ -14,7 +14,7 @@ limitations under the License. */ -package pkg +package flags import ( "flag" @@ -24,7 +24,6 @@ import ( "os" "strings" - "github.com/coreos/etcd/pkg/flags" "github.com/coreos/etcd/pkg/transport" ) @@ -126,7 +125,7 @@ func URLsFromFlags(fs *flag.FlagSet, urlsFlagName string, addrFlagName string, t return nil, fmt.Errorf("Set only one of flags -%s and -%s", urlsFlagName, addrFlagName) } - addr := *fs.Lookup(addrFlagName).Value.(*flags.IPAddressPort) + addr := *fs.Lookup(addrFlagName).Value.(*IPAddressPort) addrURL := url.URL{Scheme: "http", Host: addr.String()} if !tlsInfo.Empty() { addrURL.Scheme = "https" @@ -134,5 +133,5 @@ func URLsFromFlags(fs *flag.FlagSet, urlsFlagName string, addrFlagName string, t return []url.URL{addrURL}, nil } - return []url.URL(*fs.Lookup(urlsFlagName).Value.(*flags.URLsValue)), nil + return []url.URL(*fs.Lookup(urlsFlagName).Value.(*URLsValue)), nil } diff --git a/pkg/flag_test.go b/pkg/flags/flag_test.go similarity index 95% rename from pkg/flag_test.go rename to pkg/flags/flag_test.go index 784996a7c..a33387e25 100644 --- a/pkg/flag_test.go +++ b/pkg/flags/flag_test.go @@ -14,7 +14,7 @@ limitations under the License. */ -package pkg +package flags import ( "flag" @@ -23,7 +23,6 @@ import ( "reflect" "testing" - "github.com/coreos/etcd/pkg/flags" "github.com/coreos/etcd/pkg/transport" ) @@ -133,8 +132,8 @@ func TestURLsFromFlags(t *testing.T) { for i, tt := range tests { fs := flag.NewFlagSet("test", flag.PanicOnError) - fs.Var(flags.NewURLsValue("http://127.0.0.1:2379"), "urls", "") - fs.Var(&flags.IPAddressPort{}, "addr", "") + fs.Var(NewURLsValue("http://127.0.0.1:2379"), "urls", "") + fs.Var(&IPAddressPort{}, "addr", "") if err := fs.Parse(tt.args); err != nil { t.Errorf("#%d: failed to parse flags: %v", i, err) diff --git a/pkg/test_util.go b/pkg/testutil/testutil.go similarity index 98% rename from pkg/test_util.go rename to pkg/testutil/testutil.go index e3986bfd8..4db6f2963 100644 --- a/pkg/test_util.go +++ b/pkg/testutil/testutil.go @@ -14,7 +14,7 @@ limitations under the License. */ -package pkg +package testutil import ( "runtime" diff --git a/raft/node_test.go b/raft/node_test.go index 3ae0fc901..f2cf637bc 100644 --- a/raft/node_test.go +++ b/raft/node_test.go @@ -22,7 +22,7 @@ import ( "time" "github.com/coreos/etcd/Godeps/_workspace/src/code.google.com/p/go.net/context" - "github.com/coreos/etcd/pkg" + "github.com/coreos/etcd/pkg/testutil" "github.com/coreos/etcd/raft/raftpb" ) @@ -121,7 +121,7 @@ func TestBlockProposal(t *testing.T) { errc <- n.Propose(context.TODO(), []byte("somedata")) }() - pkg.ForceGosched() + testutil.ForceGosched() select { case err := <-errc: t.Errorf("err = %v, want blocking", err) @@ -129,7 +129,7 @@ func TestBlockProposal(t *testing.T) { } n.Campaign(context.TODO()) - pkg.ForceGosched() + testutil.ForceGosched() select { case err := <-errc: if err != nil { @@ -253,7 +253,7 @@ func TestNodeCompact(t *testing.T) { Nodes: []uint64{1}, } - pkg.ForceGosched() + testutil.ForceGosched() select { case <-n.Ready(): default: @@ -261,7 +261,7 @@ func TestNodeCompact(t *testing.T) { } n.Compact(w.Index, w.Nodes, w.Data) - pkg.ForceGosched() + testutil.ForceGosched() select { case rd := <-n.Ready(): if !reflect.DeepEqual(rd.Snapshot, w) { @@ -270,7 +270,7 @@ func TestNodeCompact(t *testing.T) { default: t.Fatalf("unexpected compact failure: unable to create a snapshot") } - pkg.ForceGosched() + testutil.ForceGosched() // TODO: this test the run updates the snapi correctly... should be tested // separately with other kinds of updates select { diff --git a/test b/test index 53813e788..e5b0ca688 100755 --- a/test +++ b/test @@ -15,7 +15,7 @@ COVER=${COVER:-"-cover"} source ./build # Hack: gofmt ./ will recursively check the .git directory. So use *.go for gofmt. -TESTABLE_AND_FORMATTABLE="client discovery etcdctl/command etcdserver etcdserver/etcdhttp etcdserver/etcdserverpb integration pkg pkg/flags pkg/transport proxy raft snap store wait wal" +TESTABLE_AND_FORMATTABLE="client discovery etcdctl/command etcdserver etcdserver/etcdhttp etcdserver/etcdserverpb integration pkg/flags pkg/transport proxy raft snap store wait wal" TESTABLE="$TESTABLE_AND_FORMATTABLE ./" FORMATTABLE="$TESTABLE_AND_FORMATTABLE *.go etcdctl/"