// You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package pbutil import "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" var ( plog = capnslog.NewPackageLogger("github.com/algoadv/etcd/pkg", "flags") ) type Marshaler interface { Marshal() (data []byte, err error) } type Unmarshaler interface { Unmarshal(data []byte) error } func MustMarshal(m Marshaler) []byte { d, err := m.Marshal() if err != nil { plog.Panicf("marshal should never fail (%v)", err) }
"time" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" etcdErr "github.com/algoadv/etcd/error" "github.com/algoadv/etcd/etcdserver" "github.com/algoadv/etcd/etcdserver/auth" "github.com/algoadv/etcd/etcdserver/etcdhttp/httptypes" ) const ( // time to wait for a Watch request defaultWatchTimeout = time.Duration(math.MaxInt64) ) var ( plog = capnslog.NewPackageLogger("github.com/algoadv/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 // Otherwise, it is assumed to be an InternalServerError func writeError(w http.ResponseWriter, r *http.Request, err error) { if err == nil { return } switch e := err.(type) { case *etcdErr.Error: e.WriteTo(w) case *httptypes.HTTPError: if et := e.WriteTo(w); et != nil {
"github.com/algoadv/etcd/pkg/types" ) const ( // StorePermsPrefix is the internal prefix of the storage layer dedicated to storing user data. StorePermsPrefix = "/2" // RootRoleName is the name of the ROOT role, with privileges to manage the cluster. RootRoleName = "root" // GuestRoleName is the name of the role that defines the privileges of an unauthenticated user. GuestRoleName = "guest" ) var ( plog = capnslog.NewPackageLogger("github.com/algoadv/etcd/etcdserver", "auth") ) var rootRole = Role{ Role: RootRoleName, Permissions: Permissions{ KV: RWPermission{ Read: []string{"*"}, Write: []string{"*"}, }, }, } var guestRole = Role{ Role: GuestRoleName, Permissions: Permissions{
"github.com/algoadv/etcd/etcdserver/etcdhttp" "github.com/algoadv/etcd/etcdserver/etcdserverpb" "github.com/algoadv/etcd/pkg/cors" "github.com/algoadv/etcd/pkg/fileutil" "github.com/algoadv/etcd/pkg/osutil" runtimeutil "github.com/algoadv/etcd/pkg/runtime" "github.com/algoadv/etcd/pkg/transport" "github.com/algoadv/etcd/pkg/types" "github.com/algoadv/etcd/proxy" "github.com/algoadv/etcd/rafthttp" "github.com/algoadv/etcd/version" ) type dirType string var plog = capnslog.NewPackageLogger("github.com/algoadv/etcd", "etcdmain") const ( // the owner can make/remove files inside the directory privateDirMode = 0700 // internal fd usage includes disk usage and transport usage. // To read/write snapshot, snap pkg needs 1. In normal case, wal pkg needs // at most 2 to read/lock/write WALs. One case that it needs to 2 is to // read all logs after some snapshot index, which locates at the end of // the second last and the head of the last. For purging, it needs to read // directory, so it needs 1. For fd monitor, it needs 1. // For transport, rafthttp builds two long-polling connections and at most // four temporary connections with each member. There are at most 9 members // in a cluster, so it should reserve 96. // For the safety, we set the total reserved number to 150.
func init() { raft.SetLogger(capnslog.NewPackageLogger("github.com/algoadv/etcd", "raft")) expvar.Publish("raft.status", expvar.Func(func() interface{} { return raftStatus() })) }
// distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package main import ( "flag" oldlog "log" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" ) var logLevel = capnslog.INFO var log = capnslog.NewPackageLogger("github.com/coreos/pkg/capnslog/cmd", "main") var dlog = capnslog.NewPackageLogger("github.com/coreos/pkg/capnslog/cmd", "dolly") func init() { flag.Var(&logLevel, "log-level", "Global log level.") } func main() { rl := capnslog.MustRepoLogger("github.com/coreos/pkg/capnslog/cmd") // We can parse the log level configs from the command line flag.Parse() if flag.NArg() > 1 { cfg, err := rl.ParseLogLevelConfig(flag.Arg(1)) if err != nil { log.Fatal(err)
// limitations under the License. package netutil import ( "net" "net/url" "reflect" "sort" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" "github.com/algoadv/etcd/pkg/types" ) var ( plog = capnslog.NewPackageLogger("github.com/algoadv/etcd/pkg", "netutil") // indirection for testing resolveTCPAddr = net.ResolveTCPAddr ) // resolveTCPAddrs is a convenience wrapper for net.ResolveTCPAddr. // resolveTCPAddrs return a new set of url.URLs, in which all DNS hostnames // are resolved. func resolveTCPAddrs(urls [][]url.URL) ([][]url.URL, error) { newurls := make([][]url.URL, 0) for _, us := range urls { nus := make([]url.URL, len(us)) for i, u := range us { nu, err := url.Parse(u.String()) if err != nil {
"log" "net" "net/http" "net/url" "strings" "sync/atomic" "time" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" "github.com/algoadv/etcd/etcdserver/etcdhttp/httptypes" "github.com/algoadv/etcd/pkg/httputil" ) var ( plog = capnslog.NewPackageLogger("github.com/algoadv/etcd", "proxy") // Hop-by-hop headers. These are removed when sent to the backend. // http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html // This list of headers borrowed from stdlib httputil.ReverseProxy singleHopHeaders = []string{ "Connection", "Keep-Alive", "Proxy-Authenticate", "Proxy-Authorization", "Te", // canonicalized version of "TE" "Trailers", "Transfer-Encoding", "Upgrade", } )
"net/url" "path" "sort" "strconv" "strings" "time" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/jonboulle/clockwork" "github.com/algoadv/etcd/Godeps/_workspace/src/golang.org/x/net/context" "github.com/algoadv/etcd/client" "github.com/algoadv/etcd/pkg/types" ) var ( plog = capnslog.NewPackageLogger("github.com/algoadv/etcd", "discovery") ErrInvalidURL = errors.New("discovery: invalid URL") ErrBadSizeKey = errors.New("discovery: size key is bad") ErrSizeNotFound = errors.New("discovery: size key not found") ErrTokenNotFound = errors.New("discovery: token not found") ErrDuplicateID = errors.New("discovery: found duplicate id") ErrDuplicateName = errors.New("discovery: found duplicate name") ErrFullCluster = errors.New("discovery: cluster is full") ErrTooManyRetries = errors.New("discovery: too many retries") ErrBadDiscoveryEndpoint = errors.New("discovery: bad discovery endpoint") ) var ( // Number of retries discovery will attempt before giving up and erroring out. nRetries = uint(math.MaxUint32)
// distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package httptypes import ( "encoding/json" "net/http" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog" ) var ( plog = capnslog.NewPackageLogger("github.com/algoadv/etcd/etcdserver/etcdhttp", "httptypes") ) type HTTPError struct { Message string `json:"message"` // HTTP return code Code int `json:"-"` } func (e HTTPError) Error() string { return e.Message } func (e HTTPError) WriteTo(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(e.Code)