mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdhttp: use leveled logging
This commit is contained in:
parent
e0d5116683
commit
0adeee2965
@ -20,7 +20,6 @@ import (
|
||||
"expvar"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"path"
|
||||
@ -147,7 +146,7 @@ func (h *keysHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
case resp.Event != nil:
|
||||
if err := writeKeyEvent(w, resp.Event, h.timer); err != nil {
|
||||
// Should never be reached
|
||||
log.Printf("error writing event: %v", err)
|
||||
plog.Errorf("error writing event (%v)", err)
|
||||
}
|
||||
case resp.Watcher != nil:
|
||||
ctx, cancel := context.WithTimeout(context.Background(), defaultWatchTimeout)
|
||||
@ -197,7 +196,7 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
mc := newMemberCollection(h.cluster.Members())
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
if err := json.NewEncoder(w).Encode(mc); err != nil {
|
||||
log.Printf("etcdhttp: %v", err)
|
||||
plog.Warningf("failed to encode members response (%v)", err)
|
||||
}
|
||||
case "leader":
|
||||
id := h.server.Leader()
|
||||
@ -208,7 +207,7 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
m := newMember(h.cluster.Member(id))
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
if err := json.NewEncoder(w).Encode(m); err != nil {
|
||||
log.Printf("etcdhttp: %v", err)
|
||||
plog.Warningf("failed to encode members response (%v)", err)
|
||||
}
|
||||
default:
|
||||
writeError(w, httptypes.NewHTTPError(http.StatusNotFound, "Not found"))
|
||||
@ -226,7 +225,7 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
writeError(w, httptypes.NewHTTPError(http.StatusConflict, err.Error()))
|
||||
return
|
||||
case err != nil:
|
||||
log.Printf("etcdhttp: error adding node %s: %v", m.ID, err)
|
||||
plog.Errorf("error adding member %s (%v)", m.ID, err)
|
||||
writeError(w, err)
|
||||
return
|
||||
}
|
||||
@ -234,7 +233,7 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusCreated)
|
||||
if err := json.NewEncoder(w).Encode(res); err != nil {
|
||||
log.Printf("etcdhttp: %v", err)
|
||||
plog.Warningf("failed to encode members response (%v)", err)
|
||||
}
|
||||
case "DELETE":
|
||||
id, ok := getID(r.URL.Path, w)
|
||||
@ -248,7 +247,7 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
case err == etcdserver.ErrIDNotFound:
|
||||
writeError(w, httptypes.NewHTTPError(http.StatusNotFound, fmt.Sprintf("No such member: %s", id)))
|
||||
case err != nil:
|
||||
log.Printf("etcdhttp: error removing node %s: %v", id, err)
|
||||
plog.Errorf("error removing member %s (%v)", id, err)
|
||||
writeError(w, err)
|
||||
default:
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
@ -273,7 +272,7 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
case err == etcdserver.ErrIDNotFound:
|
||||
writeError(w, httptypes.NewHTTPError(http.StatusNotFound, fmt.Sprintf("No such member: %s", id)))
|
||||
case err != nil:
|
||||
log.Printf("etcdhttp: error updating node %s: %v", m.ID, err)
|
||||
plog.Errorf("error updating member %s (%v)", m.ID, err)
|
||||
writeError(w, err)
|
||||
default:
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
@ -379,7 +378,7 @@ func serveVersion(w http.ResponseWriter, r *http.Request, clusterV string) {
|
||||
|
||||
b, err := json.Marshal(&vs)
|
||||
if err != nil {
|
||||
log.Panicf("version: cannot marshal versions to json (%v)", err)
|
||||
plog.Panicf("cannot marshal versions to json (%v)", err)
|
||||
}
|
||||
w.Write(b)
|
||||
}
|
||||
@ -585,7 +584,7 @@ func handleKeyWatch(ctx context.Context, w http.ResponseWriter, wa store.Watcher
|
||||
ev = trimEventPrefix(ev, etcdserver.StoreKeysPrefix)
|
||||
if err := json.NewEncoder(w).Encode(ev); err != nil {
|
||||
// Should never be reached
|
||||
log.Printf("error writing event: %v\n", err)
|
||||
plog.Warningf("error writing event (%v)", err)
|
||||
return
|
||||
}
|
||||
if !stream {
|
||||
|
@ -16,7 +16,6 @@ package etcdhttp
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"net/http"
|
||||
"path"
|
||||
"strings"
|
||||
@ -57,7 +56,7 @@ func hasRootAccess(sec *security.Store, r *http.Request) bool {
|
||||
}
|
||||
ok = rootUser.CheckPassword(password)
|
||||
if !ok {
|
||||
log.Printf("security: Wrong password for user %s", username)
|
||||
plog.Warningf("security: wrong password for user %s", username)
|
||||
return false
|
||||
}
|
||||
for _, role := range rootUser.Roles {
|
||||
@ -65,7 +64,7 @@ func hasRootAccess(sec *security.Store, r *http.Request) bool {
|
||||
return true
|
||||
}
|
||||
}
|
||||
log.Printf("security: User %s does not have the %s role for resource %s.", username, security.RootRoleName, r.URL.Path)
|
||||
plog.Warningf("security: user %s does not have the %s role for resource %s.", username, security.RootRoleName, r.URL.Path)
|
||||
return false
|
||||
}
|
||||
|
||||
@ -83,12 +82,12 @@ func hasKeyPrefixAccess(sec *security.Store, r *http.Request, key string, recurs
|
||||
}
|
||||
user, err := sec.GetUser(username)
|
||||
if err != nil {
|
||||
log.Printf("security: No such user: %s.", username)
|
||||
plog.Warningf("security: no such user: %s.", username)
|
||||
return false
|
||||
}
|
||||
authAsUser := user.CheckPassword(password)
|
||||
if !authAsUser {
|
||||
log.Printf("security: Incorrect password for user: %s.", username)
|
||||
plog.Warningf("security: incorrect password for user: %s.", username)
|
||||
return false
|
||||
}
|
||||
writeAccess := r.Method != "GET" && r.Method != "HEAD"
|
||||
@ -102,7 +101,7 @@ func hasKeyPrefixAccess(sec *security.Store, r *http.Request, key string, recurs
|
||||
}
|
||||
return role.HasKeyAccess(key, writeAccess)
|
||||
}
|
||||
log.Printf("security: Invalid access for user %s on key %s.", username, key)
|
||||
plog.Warningf("security: invalid access for user %s on key %s.", username, key)
|
||||
return false
|
||||
}
|
||||
|
||||
@ -115,7 +114,7 @@ func hasGuestAccess(sec *security.Store, r *http.Request, key string) bool {
|
||||
if role.HasKeyAccess(key, writeAccess) {
|
||||
return true
|
||||
}
|
||||
log.Printf("security: Invalid access for unauthenticated user on resource %s.", key)
|
||||
plog.Warningf("security: invalid access for unauthenticated user on resource %s.", key)
|
||||
return false
|
||||
}
|
||||
|
||||
@ -157,7 +156,7 @@ func (sh *securityHandler) baseRoles(w http.ResponseWriter, r *http.Request) {
|
||||
rolesCollections.Roles = roles
|
||||
err = json.NewEncoder(w).Encode(rolesCollections)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: baseRoles error encoding on", r.URL)
|
||||
plog.Warningf("baseRoles error encoding on %s", r.URL)
|
||||
}
|
||||
}
|
||||
|
||||
@ -197,7 +196,7 @@ func (sh *securityHandler) forRole(w http.ResponseWriter, r *http.Request, role
|
||||
}
|
||||
err = json.NewEncoder(w).Encode(data)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: forRole error encoding on", r.URL)
|
||||
plog.Warningf("forRole error encoding on %s", r.URL)
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -224,7 +223,7 @@ func (sh *securityHandler) forRole(w http.ResponseWriter, r *http.Request, role
|
||||
}
|
||||
err = json.NewEncoder(w).Encode(newrole)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: forRole error encoding on", r.URL)
|
||||
plog.Warningf("forRole error encoding on %s", r.URL)
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -262,7 +261,7 @@ func (sh *securityHandler) baseUsers(w http.ResponseWriter, r *http.Request) {
|
||||
usersCollections.Users = users
|
||||
err = json.NewEncoder(w).Encode(usersCollections)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: baseUsers error encoding on", r.URL)
|
||||
plog.Warningf("baseUsers error encoding on %s", r.URL)
|
||||
}
|
||||
}
|
||||
|
||||
@ -304,7 +303,7 @@ func (sh *securityHandler) forUser(w http.ResponseWriter, r *http.Request, user
|
||||
|
||||
err = json.NewEncoder(w).Encode(u)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: forUser error encoding on", r.URL)
|
||||
plog.Warningf("forUser error encoding on %s", r.URL)
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -335,7 +334,7 @@ func (sh *securityHandler) forUser(w http.ResponseWriter, r *http.Request, user
|
||||
}
|
||||
err = json.NewEncoder(w).Encode(newuser)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: forUser error encoding on", r.URL)
|
||||
plog.Warningf("forUser error encoding on %s", r.URL)
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -368,7 +367,7 @@ func (sh *securityHandler) enableDisable(w http.ResponseWriter, r *http.Request)
|
||||
jsonDict := enabled{isEnabled}
|
||||
err := json.NewEncoder(w).Encode(jsonDict)
|
||||
if err != nil {
|
||||
log.Println("etcdhttp: error encoding security state on", r.URL)
|
||||
plog.Warningf("error encoding security state on %s", r.URL)
|
||||
}
|
||||
case "PUT":
|
||||
err := sh.sec.EnableSecurity()
|
||||
|
@ -16,12 +16,12 @@ package etcdhttp
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"log"
|
||||
"math"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
|
||||
etcdErr "github.com/coreos/etcd/error"
|
||||
"github.com/coreos/etcd/etcdserver/etcdhttp/httptypes"
|
||||
"github.com/coreos/etcd/etcdserver/security"
|
||||
@ -38,7 +38,10 @@ const (
|
||||
defaultWatchTimeout = time.Duration(math.MaxInt64)
|
||||
)
|
||||
|
||||
var errClosed = errors.New("etcdhttp: client closed connection")
|
||||
var (
|
||||
plog = capnslog.NewPackageLogger("github.com/coreos/etcd", "etcdhttp")
|
||||
errClosed = errors.New("etcdhttp: client closed connection")
|
||||
)
|
||||
|
||||
// writeError logs and writes the given Error to the ResponseWriter
|
||||
// If Error is an etcdErr, it is rendered to the ResponseWriter
|
||||
@ -56,7 +59,7 @@ func writeError(w http.ResponseWriter, err error) {
|
||||
herr := httptypes.NewHTTPError(http.StatusBadRequest, e.Error())
|
||||
herr.WriteTo(w)
|
||||
default:
|
||||
log.Printf("etcdhttp: unexpected error: %v", err)
|
||||
plog.Errorf("got unexpected response error (%v)", err)
|
||||
herr := httptypes.NewHTTPError(http.StatusInternalServerError, "Internal Server Error")
|
||||
herr.WriteTo(w)
|
||||
}
|
||||
|
@ -16,7 +16,6 @@ package etcdhttp
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/coreos/etcd/etcdserver"
|
||||
@ -59,6 +58,6 @@ func (h *peerMembersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
ms := h.cluster.Members()
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
if err := json.NewEncoder(w).Encode(ms); err != nil {
|
||||
log.Printf("etcdhttp: %v", err)
|
||||
plog.Warningf("failed to encode members response (%v)", err)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user