From 8f3544ece8f78249b531375278b738b08d63de1e Mon Sep 17 00:00:00 2001 From: Blake Mizerany Date: Tue, 2 Sep 2014 15:04:57 -0700 Subject: [PATCH] server of one is alive! --- .gitignore | 1 + etcdserver2/etcdhttp/http.go | 12 ++++++++++-- main.go | 14 +++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 781733c25..bc551ca78 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /bin .vagrant *.etcd +etcd diff --git a/etcdserver2/etcdhttp/http.go b/etcdserver2/etcdhttp/http.go index 1875d7025..ad28372ab 100644 --- a/etcdserver2/etcdhttp/http.go +++ b/etcdserver2/etcdhttp/http.go @@ -19,6 +19,7 @@ import ( "math/rand" "code.google.com/p/go.net/context" "github.com/coreos/etcd/elog" + etcderrors "github.com/coreos/etcd/error" etcdserver "github.com/coreos/etcd/etcdserver2" "github.com/coreos/etcd/etcdserver2/etcdserverpb" "github.com/coreos/etcd/raft/raftpb" @@ -40,7 +41,7 @@ func (ps Peers) Set(s string) error { return err } for k, v := range v { - id, err := strconv.ParseInt(k, 16, 64) + id, err := strconv.ParseInt(k, 0, 64) if err != nil { return err } @@ -151,7 +152,14 @@ func (h Handler) serveKeys(ctx context.Context, w http.ResponseWriter, r *http.R } resp, err := h.Server.Do(ctx, rr) - if err != nil { + switch e := err.(type) { + case nil: + case *etcderrors.Error: + // TODO: gross. this should be handled in encodeResponse + log.Println(err) + e.Write(w) + return + default: log.Println(err) http.Error(w, "Internal Server Error", 500) return diff --git a/main.go b/main.go index 0aa87a553..d79ecc8c0 100644 --- a/main.go +++ b/main.go @@ -11,10 +11,11 @@ import ( "github.com/coreos/etcd/etcdserver2/etcdhttp" "github.com/coreos/etcd/raft" "github.com/coreos/etcd/raft/raftpb" + "github.com/coreos/etcd/store" ) var ( - fid = flag.String("id", "default", "Id of this server") + fid = flag.String("id", "0xBEEF", "Id of this server") timeout = flag.Duration("timeout", 10*time.Second, "Request Timeout") laddr = flag.String("l", ":8080", "HTTP service address (e.g., ':8080')") @@ -26,16 +27,19 @@ func init() { } func main() { - id, err := strconv.ParseInt(*fid, 16, 64) + flag.Parse() + + id, err := strconv.ParseInt(*fid, 0, 64) if err != nil { log.Fatal(err) } n := raft.Start(id, peers.Ids()) s := &etcdserver.Server{ - Node: n, - Save: func(st raftpb.State, ents []raftpb.Entry) {}, // TODO: use wal - Send: etcdhttp.Sender(peers), + Store: store.New(), + Node: n, + Save: func(st raftpb.State, ents []raftpb.Entry) {}, // TODO: use wal + Send: etcdhttp.Sender(peers), } etcdserver.Start(s) h := &etcdhttp.Handler{