|
@@ -22,6 +22,8 @@ import (
|
|
|
"github.com/coreos/etcd/etcdserver/api"
|
|
"github.com/coreos/etcd/etcdserver/api"
|
|
|
"github.com/coreos/etcd/lease/leasehttp"
|
|
"github.com/coreos/etcd/lease/leasehttp"
|
|
|
"github.com/coreos/etcd/rafthttp"
|
|
"github.com/coreos/etcd/rafthttp"
|
|
|
|
|
+
|
|
|
|
|
+ "go.uber.org/zap"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
const (
|
|
@@ -29,12 +31,13 @@ const (
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
// NewPeerHandler generates an http.Handler to handle etcd peer requests.
|
|
// NewPeerHandler generates an http.Handler to handle etcd peer requests.
|
|
|
-func NewPeerHandler(s etcdserver.ServerPeer) http.Handler {
|
|
|
|
|
- return newPeerHandler(s.Cluster(), s.RaftHandler(), s.LeaseHandler())
|
|
|
|
|
|
|
+func NewPeerHandler(lg *zap.Logger, s etcdserver.ServerPeer) http.Handler {
|
|
|
|
|
+ return newPeerHandler(lg, s.Cluster(), s.RaftHandler(), s.LeaseHandler())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func newPeerHandler(cluster api.Cluster, raftHandler http.Handler, leaseHandler http.Handler) http.Handler {
|
|
|
|
|
|
|
+func newPeerHandler(lg *zap.Logger, cluster api.Cluster, raftHandler http.Handler, leaseHandler http.Handler) http.Handler {
|
|
|
mh := &peerMembersHandler{
|
|
mh := &peerMembersHandler{
|
|
|
|
|
+ lg: lg,
|
|
|
cluster: cluster,
|
|
cluster: cluster,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -52,6 +55,7 @@ func newPeerHandler(cluster api.Cluster, raftHandler http.Handler, leaseHandler
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
type peerMembersHandler struct {
|
|
type peerMembersHandler struct {
|
|
|
|
|
+ lg *zap.Logger
|
|
|
cluster api.Cluster
|
|
cluster api.Cluster
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -68,6 +72,10 @@ func (h *peerMembersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
ms := h.cluster.Members()
|
|
ms := h.cluster.Members()
|
|
|
w.Header().Set("Content-Type", "application/json")
|
|
w.Header().Set("Content-Type", "application/json")
|
|
|
if err := json.NewEncoder(w).Encode(ms); err != nil {
|
|
if err := json.NewEncoder(w).Encode(ms); err != nil {
|
|
|
- plog.Warningf("failed to encode members response (%v)", err)
|
|
|
|
|
|
|
+ if h.lg != nil {
|
|
|
|
|
+ h.lg.Warn("failed to encode membership members", zap.Error(err))
|
|
|
|
|
+ } else {
|
|
|
|
|
+ plog.Warningf("failed to encode members response (%v)", err)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|