mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
server of one is alive!
This commit is contained in:
parent
cb7b321240
commit
8f3544ece8
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
|||||||
/bin
|
/bin
|
||||||
.vagrant
|
.vagrant
|
||||||
*.etcd
|
*.etcd
|
||||||
|
etcd
|
||||||
|
@ -19,6 +19,7 @@ import (
|
|||||||
"math/rand"
|
"math/rand"
|
||||||
"code.google.com/p/go.net/context"
|
"code.google.com/p/go.net/context"
|
||||||
"github.com/coreos/etcd/elog"
|
"github.com/coreos/etcd/elog"
|
||||||
|
etcderrors "github.com/coreos/etcd/error"
|
||||||
etcdserver "github.com/coreos/etcd/etcdserver2"
|
etcdserver "github.com/coreos/etcd/etcdserver2"
|
||||||
"github.com/coreos/etcd/etcdserver2/etcdserverpb"
|
"github.com/coreos/etcd/etcdserver2/etcdserverpb"
|
||||||
"github.com/coreos/etcd/raft/raftpb"
|
"github.com/coreos/etcd/raft/raftpb"
|
||||||
@ -40,7 +41,7 @@ func (ps Peers) Set(s string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for k, v := range v {
|
for k, v := range v {
|
||||||
id, err := strconv.ParseInt(k, 16, 64)
|
id, err := strconv.ParseInt(k, 0, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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)
|
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)
|
log.Println(err)
|
||||||
http.Error(w, "Internal Server Error", 500)
|
http.Error(w, "Internal Server Error", 500)
|
||||||
return
|
return
|
||||||
|
14
main.go
14
main.go
@ -11,10 +11,11 @@ import (
|
|||||||
"github.com/coreos/etcd/etcdserver2/etcdhttp"
|
"github.com/coreos/etcd/etcdserver2/etcdhttp"
|
||||||
"github.com/coreos/etcd/raft"
|
"github.com/coreos/etcd/raft"
|
||||||
"github.com/coreos/etcd/raft/raftpb"
|
"github.com/coreos/etcd/raft/raftpb"
|
||||||
|
"github.com/coreos/etcd/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
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")
|
timeout = flag.Duration("timeout", 10*time.Second, "Request Timeout")
|
||||||
laddr = flag.String("l", ":8080", "HTTP service address (e.g., ':8080')")
|
laddr = flag.String("l", ":8080", "HTTP service address (e.g., ':8080')")
|
||||||
|
|
||||||
@ -26,16 +27,19 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
id, err := strconv.ParseInt(*fid, 16, 64)
|
flag.Parse()
|
||||||
|
|
||||||
|
id, err := strconv.ParseInt(*fid, 0, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
n := raft.Start(id, peers.Ids())
|
n := raft.Start(id, peers.Ids())
|
||||||
s := &etcdserver.Server{
|
s := &etcdserver.Server{
|
||||||
Node: n,
|
Store: store.New(),
|
||||||
Save: func(st raftpb.State, ents []raftpb.Entry) {}, // TODO: use wal
|
Node: n,
|
||||||
Send: etcdhttp.Sender(peers),
|
Save: func(st raftpb.State, ents []raftpb.Entry) {}, // TODO: use wal
|
||||||
|
Send: etcdhttp.Sender(peers),
|
||||||
}
|
}
|
||||||
etcdserver.Start(s)
|
etcdserver.Start(s)
|
||||||
h := &etcdhttp.Handler{
|
h := &etcdhttp.Handler{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user