etcdserver: need to add id to proposal :/

This commit is contained in:
Blake Mizerany 2014-08-26 16:17:02 -07:00 committed by Yicheng Qin
parent c98f1cb501
commit 3dd6280df5

View File

@ -2,6 +2,7 @@ package etcdserver
import (
"errors"
"time"
"code.google.com/p/go.net/context"
"github.com/coreos/etcd/raft"
@ -52,9 +53,7 @@ func (s *Server) Run(ctx context.Context) {
s.Send(rd.Messages)
go func() {
for _, e := range rd.CommittedEntries {
var r Request
r.Unmarshal(e.Data)
s.w.Trigger(r.Id, s.apply(r))
s.apply(rd, e)
}
}()
case <-ctx.Done():
@ -104,7 +103,27 @@ func (s *Server) Do(ctx context.Context, r Request) (Response, error) {
}
}
// apply interprets r as a call to store.X and returns an Response interpreted from store.Event
func (s *Server) apply(r Request) Response {
panic("not implmented")
func respond(rd Ready, ev *store.Event, err error) Response {
return Response{Term: rd.Term, Index: rd.Index, Event: ev, err: err}
}
// apply interprets r as a call to store.X and returns an Response interpreted from store.Event
func (s *Server) apply(rd Ready, e raft.Entry) Response {
resp := Response{Term: rd.Term, Index: rd.Index}
var r Request
if resp.err = r.Unmarshal(e.Data); resp.err != nil {
return resp
}
switch r.Method {
case "POST":
resp.Event, resp.err = st.Create(r.Path, r.Dir, r.Val, true, time.Unix(0, r.Expiration))
return resp
case "PUT":
case "DELETE":
default:
return Response{err: ErrUnknownMethod}
}
}