Updates godep for etcd-client to 3.1.10.

This commit is contained in:
Timothy St. Clair 2017-07-25 10:14:38 -05:00
parent bb48546658
commit a8b2146ef3
23 changed files with 436 additions and 295 deletions

257
Godeps/Godeps.json generated
View File

@ -460,283 +460,283 @@
}, },
{ {
"ImportPath": "github.com/coreos/etcd/alarm", "ImportPath": "github.com/coreos/etcd/alarm",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth", "ImportPath": "github.com/coreos/etcd/auth",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth/authpb", "ImportPath": "github.com/coreos/etcd/auth/authpb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/client", "ImportPath": "github.com/coreos/etcd/client",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/clientv3", "ImportPath": "github.com/coreos/etcd/clientv3",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/compactor", "ImportPath": "github.com/coreos/etcd/compactor",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/discovery", "ImportPath": "github.com/coreos/etcd/discovery",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/error", "ImportPath": "github.com/coreos/etcd/error",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver", "ImportPath": "github.com/coreos/etcd/etcdserver",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api", "ImportPath": "github.com/coreos/etcd/etcdserver/api",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http/httptypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http/httptypes",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/auth", "ImportPath": "github.com/coreos/etcd/etcdserver/auth",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb", "ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/membership", "ImportPath": "github.com/coreos/etcd/etcdserver/membership",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/stats", "ImportPath": "github.com/coreos/etcd/etcdserver/stats",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/integration", "ImportPath": "github.com/coreos/etcd/integration",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/lease", "ImportPath": "github.com/coreos/etcd/lease",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/lease/leasehttp", "ImportPath": "github.com/coreos/etcd/lease/leasehttp",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/lease/leasepb", "ImportPath": "github.com/coreos/etcd/lease/leasepb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc", "ImportPath": "github.com/coreos/etcd/mvcc",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/backend", "ImportPath": "github.com/coreos/etcd/mvcc/backend",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb", "ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/adt", "ImportPath": "github.com/coreos/etcd/pkg/adt",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/contention", "ImportPath": "github.com/coreos/etcd/pkg/contention",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/cpuutil", "ImportPath": "github.com/coreos/etcd/pkg/cpuutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/crc", "ImportPath": "github.com/coreos/etcd/pkg/crc",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/fileutil", "ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/httputil", "ImportPath": "github.com/coreos/etcd/pkg/httputil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/idutil", "ImportPath": "github.com/coreos/etcd/pkg/idutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/ioutil", "ImportPath": "github.com/coreos/etcd/pkg/ioutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/logutil", "ImportPath": "github.com/coreos/etcd/pkg/logutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/monotime", "ImportPath": "github.com/coreos/etcd/pkg/monotime",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/netutil", "ImportPath": "github.com/coreos/etcd/pkg/netutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pathutil", "ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pbutil", "ImportPath": "github.com/coreos/etcd/pkg/pbutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/runtime", "ImportPath": "github.com/coreos/etcd/pkg/runtime",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/schedule", "ImportPath": "github.com/coreos/etcd/pkg/schedule",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/testutil", "ImportPath": "github.com/coreos/etcd/pkg/testutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil", "ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/transport", "ImportPath": "github.com/coreos/etcd/pkg/transport",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/types", "ImportPath": "github.com/coreos/etcd/pkg/types",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/wait", "ImportPath": "github.com/coreos/etcd/pkg/wait",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/proxy/grpcproxy", "ImportPath": "github.com/coreos/etcd/proxy/grpcproxy",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/proxy/grpcproxy/cache", "ImportPath": "github.com/coreos/etcd/proxy/grpcproxy/cache",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/raft", "ImportPath": "github.com/coreos/etcd/raft",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/raft/raftpb", "ImportPath": "github.com/coreos/etcd/raft/raftpb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/rafthttp", "ImportPath": "github.com/coreos/etcd/rafthttp",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/snap", "ImportPath": "github.com/coreos/etcd/snap",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/snap/snappb", "ImportPath": "github.com/coreos/etcd/snap/snappb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/store", "ImportPath": "github.com/coreos/etcd/store",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/version", "ImportPath": "github.com/coreos/etcd/version",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/wal", "ImportPath": "github.com/coreos/etcd/wal",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/wal/walpb", "ImportPath": "github.com/coreos/etcd/wal/walpb",
"Comment": "v3.1.5", "Comment": "v3.1.10",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/go-oidc/http", "ImportPath": "github.com/coreos/go-oidc/http",
@ -2147,82 +2147,82 @@
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer", "ImportPath": "github.com/opencontainers/runc/libcontainer",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/apparmor", "ImportPath": "github.com/opencontainers/runc/libcontainer/apparmor",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups", "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/fs", "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/fs",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/systemd", "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/systemd",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/configs", "ImportPath": "github.com/opencontainers/runc/libcontainer/configs",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/configs/validate", "ImportPath": "github.com/opencontainers/runc/libcontainer/configs/validate",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/criurpc", "ImportPath": "github.com/opencontainers/runc/libcontainer/criurpc",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/keys", "ImportPath": "github.com/opencontainers/runc/libcontainer/keys",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/label", "ImportPath": "github.com/opencontainers/runc/libcontainer/label",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/seccomp", "ImportPath": "github.com/opencontainers/runc/libcontainer/seccomp",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/selinux", "ImportPath": "github.com/opencontainers/runc/libcontainer/selinux",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/stacktrace", "ImportPath": "github.com/opencontainers/runc/libcontainer/stacktrace",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/system", "ImportPath": "github.com/opencontainers/runc/libcontainer/system",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/user", "ImportPath": "github.com/opencontainers/runc/libcontainer/user",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
"ImportPath": "github.com/opencontainers/runc/libcontainer/utils", "ImportPath": "github.com/opencontainers/runc/libcontainer/utils",
"Comment": "v1.0.0-rc2-49-gd223e2ad", "Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089" "Rev": "d223e2adae83f62d58448a799a5da05730228089"
}, },
{ {
@ -2640,7 +2640,6 @@
}, },
{ {
"ImportPath": "github.com/xiang90/probing", "ImportPath": "github.com/xiang90/probing",
"Comment": "0.0.1",
"Rev": "07dd2e8dfe18522e9c447ba95f2fe95262f63bb2" "Rev": "07dd2e8dfe18522e9c447ba95f2fe95262f63bb2"
}, },
{ {

View File

@ -28,47 +28,47 @@
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth/authpb", "ImportPath": "github.com/coreos/etcd/auth/authpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/client", "ImportPath": "github.com/coreos/etcd/client",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/clientv3", "ImportPath": "github.com/coreos/etcd/clientv3",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb", "ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb", "ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/fileutil", "ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pathutil", "ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil", "ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/transport", "ImportPath": "github.com/coreos/etcd/pkg/transport",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/types", "ImportPath": "github.com/coreos/etcd/pkg/types",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/go-systemd/daemon", "ImportPath": "github.com/coreos/go-systemd/daemon",

View File

@ -32,227 +32,227 @@
}, },
{ {
"ImportPath": "github.com/coreos/etcd/alarm", "ImportPath": "github.com/coreos/etcd/alarm",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth", "ImportPath": "github.com/coreos/etcd/auth",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth/authpb", "ImportPath": "github.com/coreos/etcd/auth/authpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/client", "ImportPath": "github.com/coreos/etcd/client",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/clientv3", "ImportPath": "github.com/coreos/etcd/clientv3",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/compactor", "ImportPath": "github.com/coreos/etcd/compactor",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/discovery", "ImportPath": "github.com/coreos/etcd/discovery",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/error", "ImportPath": "github.com/coreos/etcd/error",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver", "ImportPath": "github.com/coreos/etcd/etcdserver",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api", "ImportPath": "github.com/coreos/etcd/etcdserver/api",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http/httptypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http/httptypes",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/auth", "ImportPath": "github.com/coreos/etcd/etcdserver/auth",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb", "ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/membership", "ImportPath": "github.com/coreos/etcd/etcdserver/membership",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/stats", "ImportPath": "github.com/coreos/etcd/etcdserver/stats",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/integration", "ImportPath": "github.com/coreos/etcd/integration",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/lease", "ImportPath": "github.com/coreos/etcd/lease",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/lease/leasehttp", "ImportPath": "github.com/coreos/etcd/lease/leasehttp",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/lease/leasepb", "ImportPath": "github.com/coreos/etcd/lease/leasepb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc", "ImportPath": "github.com/coreos/etcd/mvcc",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/backend", "ImportPath": "github.com/coreos/etcd/mvcc/backend",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb", "ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/adt", "ImportPath": "github.com/coreos/etcd/pkg/adt",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/contention", "ImportPath": "github.com/coreos/etcd/pkg/contention",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/cpuutil", "ImportPath": "github.com/coreos/etcd/pkg/cpuutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/crc", "ImportPath": "github.com/coreos/etcd/pkg/crc",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/fileutil", "ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/httputil", "ImportPath": "github.com/coreos/etcd/pkg/httputil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/idutil", "ImportPath": "github.com/coreos/etcd/pkg/idutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/ioutil", "ImportPath": "github.com/coreos/etcd/pkg/ioutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/logutil", "ImportPath": "github.com/coreos/etcd/pkg/logutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/monotime", "ImportPath": "github.com/coreos/etcd/pkg/monotime",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/netutil", "ImportPath": "github.com/coreos/etcd/pkg/netutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pathutil", "ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pbutil", "ImportPath": "github.com/coreos/etcd/pkg/pbutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/runtime", "ImportPath": "github.com/coreos/etcd/pkg/runtime",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/schedule", "ImportPath": "github.com/coreos/etcd/pkg/schedule",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/testutil", "ImportPath": "github.com/coreos/etcd/pkg/testutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil", "ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/transport", "ImportPath": "github.com/coreos/etcd/pkg/transport",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/types", "ImportPath": "github.com/coreos/etcd/pkg/types",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/wait", "ImportPath": "github.com/coreos/etcd/pkg/wait",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/proxy/grpcproxy", "ImportPath": "github.com/coreos/etcd/proxy/grpcproxy",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/proxy/grpcproxy/cache", "ImportPath": "github.com/coreos/etcd/proxy/grpcproxy/cache",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/raft", "ImportPath": "github.com/coreos/etcd/raft",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/raft/raftpb", "ImportPath": "github.com/coreos/etcd/raft/raftpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/rafthttp", "ImportPath": "github.com/coreos/etcd/rafthttp",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/snap", "ImportPath": "github.com/coreos/etcd/snap",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/snap/snappb", "ImportPath": "github.com/coreos/etcd/snap/snappb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/store", "ImportPath": "github.com/coreos/etcd/store",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/version", "ImportPath": "github.com/coreos/etcd/version",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/wal", "ImportPath": "github.com/coreos/etcd/wal",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/wal/walpb", "ImportPath": "github.com/coreos/etcd/wal/walpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/go-oidc/http", "ImportPath": "github.com/coreos/go-oidc/http",

View File

@ -28,47 +28,47 @@
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth/authpb", "ImportPath": "github.com/coreos/etcd/auth/authpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/client", "ImportPath": "github.com/coreos/etcd/client",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/clientv3", "ImportPath": "github.com/coreos/etcd/clientv3",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb", "ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb", "ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/fileutil", "ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pathutil", "ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil", "ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/transport", "ImportPath": "github.com/coreos/etcd/pkg/transport",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/types", "ImportPath": "github.com/coreos/etcd/pkg/types",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/go-systemd/daemon", "ImportPath": "github.com/coreos/go-systemd/daemon",

View File

@ -28,47 +28,47 @@
}, },
{ {
"ImportPath": "github.com/coreos/etcd/auth/authpb", "ImportPath": "github.com/coreos/etcd/auth/authpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/client", "ImportPath": "github.com/coreos/etcd/client",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/clientv3", "ImportPath": "github.com/coreos/etcd/clientv3",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes", "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb", "ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb", "ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/fileutil", "ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/pathutil", "ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil", "ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/transport", "ImportPath": "github.com/coreos/etcd/pkg/transport",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/etcd/pkg/types", "ImportPath": "github.com/coreos/etcd/pkg/types",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04" "Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
}, },
{ {
"ImportPath": "github.com/coreos/go-systemd/daemon", "ImportPath": "github.com/coreos/go-systemd/daemon",

0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/client.go generated vendored Normal file → Executable file
View File

0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/disks.go generated vendored Normal file → Executable file
View File

0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/models.go generated vendored Normal file → Executable file
View File

0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/snapshots.go generated vendored Normal file → Executable file
View File

0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/version.go generated vendored Normal file → Executable file
View File

View File

@ -37,27 +37,19 @@ var (
) )
type simpleTokenTTLKeeper struct { type simpleTokenTTLKeeper struct {
tokensMu sync.Mutex
tokens map[string]time.Time tokens map[string]time.Time
stopCh chan chan struct{} donec chan struct{}
stopc chan struct{}
deleteTokenFunc func(string) deleteTokenFunc func(string)
} mu *sync.Mutex
func NewSimpleTokenTTLKeeper(deletefunc func(string)) *simpleTokenTTLKeeper {
stk := &simpleTokenTTLKeeper{
tokens: make(map[string]time.Time),
stopCh: make(chan chan struct{}),
deleteTokenFunc: deletefunc,
}
go stk.run()
return stk
} }
func (tm *simpleTokenTTLKeeper) stop() { func (tm *simpleTokenTTLKeeper) stop() {
waitCh := make(chan struct{}) select {
tm.stopCh <- waitCh case tm.stopc <- struct{}{}:
<-waitCh case <-tm.donec:
close(tm.stopCh) }
<-tm.donec
} }
func (tm *simpleTokenTTLKeeper) addSimpleToken(token string) { func (tm *simpleTokenTTLKeeper) addSimpleToken(token string) {
@ -76,27 +68,45 @@ func (tm *simpleTokenTTLKeeper) deleteSimpleToken(token string) {
func (tm *simpleTokenTTLKeeper) run() { func (tm *simpleTokenTTLKeeper) run() {
tokenTicker := time.NewTicker(simpleTokenTTLResolution) tokenTicker := time.NewTicker(simpleTokenTTLResolution)
defer tokenTicker.Stop() defer func() {
tokenTicker.Stop()
close(tm.donec)
}()
for { for {
select { select {
case <-tokenTicker.C: case <-tokenTicker.C:
nowtime := time.Now() nowtime := time.Now()
tm.tokensMu.Lock() tm.mu.Lock()
for t, tokenendtime := range tm.tokens { for t, tokenendtime := range tm.tokens {
if nowtime.After(tokenendtime) { if nowtime.After(tokenendtime) {
tm.deleteTokenFunc(t) tm.deleteTokenFunc(t)
delete(tm.tokens, t) delete(tm.tokens, t)
} }
} }
tm.tokensMu.Unlock() tm.mu.Unlock()
case waitCh := <-tm.stopCh: case <-tm.stopc:
tm.tokens = make(map[string]time.Time)
waitCh <- struct{}{}
return return
} }
} }
} }
func (as *authStore) enable() {
delf := func(tk string) {
if username, ok := as.simpleTokens[tk]; ok {
plog.Infof("deleting token %s for user %s", tk, username)
delete(as.simpleTokens, tk)
}
}
as.simpleTokenKeeper = &simpleTokenTTLKeeper{
tokens: make(map[string]time.Time),
donec: make(chan struct{}),
stopc: make(chan struct{}),
deleteTokenFunc: delf,
mu: &as.simpleTokensMu,
}
go as.simpleTokenKeeper.run()
}
func (as *authStore) GenSimpleToken() (string, error) { func (as *authStore) GenSimpleToken() (string, error) {
ret := make([]byte, defaultSimpleTokenLength) ret := make([]byte, defaultSimpleTokenLength)
@ -113,9 +123,7 @@ func (as *authStore) GenSimpleToken() (string, error) {
} }
func (as *authStore) assignSimpleTokenToUser(username, token string) { func (as *authStore) assignSimpleTokenToUser(username, token string) {
as.simpleTokenKeeper.tokensMu.Lock()
as.simpleTokensMu.Lock() as.simpleTokensMu.Lock()
_, ok := as.simpleTokens[token] _, ok := as.simpleTokens[token]
if ok { if ok {
plog.Panicf("token %s is alredy used", token) plog.Panicf("token %s is alredy used", token)
@ -124,14 +132,12 @@ func (as *authStore) assignSimpleTokenToUser(username, token string) {
as.simpleTokens[token] = username as.simpleTokens[token] = username
as.simpleTokenKeeper.addSimpleToken(token) as.simpleTokenKeeper.addSimpleToken(token)
as.simpleTokensMu.Unlock() as.simpleTokensMu.Unlock()
as.simpleTokenKeeper.tokensMu.Unlock()
} }
func (as *authStore) invalidateUser(username string) { func (as *authStore) invalidateUser(username string) {
if as.simpleTokenKeeper == nil { if as.simpleTokenKeeper == nil {
return return
} }
as.simpleTokenKeeper.tokensMu.Lock()
as.simpleTokensMu.Lock() as.simpleTokensMu.Lock()
for token, name := range as.simpleTokens { for token, name := range as.simpleTokens {
if strings.Compare(name, username) == 0 { if strings.Compare(name, username) == 0 {
@ -140,5 +146,4 @@ func (as *authStore) invalidateUser(username string) {
} }
} }
as.simpleTokensMu.Unlock() as.simpleTokensMu.Unlock()
as.simpleTokenKeeper.tokensMu.Unlock()
} }

View File

@ -215,8 +215,7 @@ func (as *authStore) AuthEnable() error {
tx.UnsafePut(authBucketName, enableFlagKey, authEnabled) tx.UnsafePut(authBucketName, enableFlagKey, authEnabled)
as.enabled = true as.enabled = true
as.enable()
as.simpleTokenKeeper = NewSimpleTokenTTLKeeper(newDeleterFunc(as))
as.rangePermCache = make(map[string]*unifiedRangePermissions) as.rangePermCache = make(map[string]*unifiedRangePermissions)
@ -244,11 +243,12 @@ func (as *authStore) AuthDisable() {
as.enabled = false as.enabled = false
as.simpleTokensMu.Lock() as.simpleTokensMu.Lock()
tk := as.simpleTokenKeeper
as.simpleTokenKeeper = nil
as.simpleTokens = make(map[string]string) // invalidate all tokens as.simpleTokens = make(map[string]string) // invalidate all tokens
as.simpleTokensMu.Unlock() as.simpleTokensMu.Unlock()
if as.simpleTokenKeeper != nil { if tk != nil {
as.simpleTokenKeeper.stop() tk.stop()
as.simpleTokenKeeper = nil
} }
plog.Noticef("Authentication disabled") plog.Noticef("Authentication disabled")
@ -647,14 +647,12 @@ func (as *authStore) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse,
func (as *authStore) AuthInfoFromToken(token string) (*AuthInfo, bool) { func (as *authStore) AuthInfoFromToken(token string) (*AuthInfo, bool) {
// same as '(t *tokenSimple) info' in v3.2+ // same as '(t *tokenSimple) info' in v3.2+
as.simpleTokenKeeper.tokensMu.Lock()
as.simpleTokensMu.Lock() as.simpleTokensMu.Lock()
username, ok := as.simpleTokens[token] username, ok := as.simpleTokens[token]
if ok { if ok && as.simpleTokenKeeper != nil {
as.simpleTokenKeeper.resetSimpleToken(token) as.simpleTokenKeeper.resetSimpleToken(token)
} }
as.simpleTokensMu.Unlock() as.simpleTokensMu.Unlock()
as.simpleTokenKeeper.tokensMu.Unlock()
return &AuthInfo{Username: username, Revision: as.revision}, ok return &AuthInfo{Username: username, Revision: as.revision}, ok
} }
@ -914,7 +912,7 @@ func NewAuthStore(be backend.Backend, indexWaiter func(uint64) <-chan struct{})
} }
if enabled { if enabled {
as.simpleTokenKeeper = NewSimpleTokenTTLKeeper(newDeleterFunc(as)) as.enable()
} }
if as.revision == 0 { if as.revision == 0 {

View File

@ -282,8 +282,16 @@ func (c *Client) dial(endpoint string, dopts ...grpc.DialOption) (*grpc.ClientCo
tokenMu: &sync.RWMutex{}, tokenMu: &sync.RWMutex{},
} }
err := c.getToken(context.TODO()) ctx := c.ctx
if err != nil { if c.cfg.DialTimeout > 0 {
cctx, cancel := context.WithTimeout(ctx, c.cfg.DialTimeout)
defer cancel()
ctx = cctx
}
if err := c.getToken(ctx); err != nil {
if err == ctx.Err() && ctx.Err() != c.ctx.Err() {
err = grpc.ErrClientConnTimeout
}
return nil, err return nil, err
} }
@ -335,6 +343,8 @@ func newClient(cfg *Config) (*Client, error) {
client.balancer = newSimpleBalancer(cfg.Endpoints) client.balancer = newSimpleBalancer(cfg.Endpoints)
conn, err := client.dial(cfg.Endpoints[0], grpc.WithBalancer(client.balancer)) conn, err := client.dial(cfg.Endpoints[0], grpc.WithBalancer(client.balancer))
if err != nil { if err != nil {
client.cancel()
client.balancer.Close()
return nil, err return nil, err
} }
client.conn = conn client.conn = conn
@ -353,6 +363,7 @@ func newClient(cfg *Config) (*Client, error) {
} }
if !hasConn { if !hasConn {
client.cancel() client.cancel()
client.balancer.Close()
conn.Close() conn.Close()
return nil, grpc.ErrClientConnTimeout return nil, grpc.ErrClientConnTimeout
} }

View File

@ -616,10 +616,24 @@ func (w *watchGrpcStream) serveSubstream(ws *watcherStream, resumec chan struct{
if ws.initReq.createdNotify { if ws.initReq.createdNotify {
ws.outc <- *wr ws.outc <- *wr
} }
// once the watch channel is returned, a current revision
// watch must resume at the store revision. This is necessary
// for the following case to work as expected:
// wch := m1.Watch("a")
// m2.Put("a", "b")
// <-wch
// If the revision is only bound on the first observed event,
// if wch is disconnected before the Put is issued, then reconnects
// after it is committed, it'll miss the Put.
if ws.initReq.rev == 0 {
nextRev = wr.Header.Revision
}
} }
} else {
// current progress of watch; <= store revision
nextRev = wr.Header.Revision
} }
nextRev = wr.Header.Revision
if len(wr.Events) > 0 { if len(wr.Events) > 0 {
nextRev = wr.Events[len(wr.Events)-1].Kv.ModRevision + 1 nextRev = wr.Events[len(wr.Events)-1].Kv.ModRevision + 1
} }

View File

@ -185,9 +185,5 @@ func (ams *authMaintenanceServer) Hash(ctx context.Context, r *pb.HashRequest) (
} }
func (ams *authMaintenanceServer) Status(ctx context.Context, ar *pb.StatusRequest) (*pb.StatusResponse, error) { func (ams *authMaintenanceServer) Status(ctx context.Context, ar *pb.StatusRequest) (*pb.StatusResponse, error) {
if err := ams.isAuthenticated(ctx); err != nil {
return nil, err
}
return ams.maintenanceServer.Status(ctx, ar) return ams.maintenanceServer.Status(ctx, ar)
} }

View File

@ -520,15 +520,14 @@ func (a *applierV3backend) LeaseGrant(lc *pb.LeaseGrantRequest) (*pb.LeaseGrantR
if err == nil { if err == nil {
resp.ID = int64(l.ID) resp.ID = int64(l.ID)
resp.TTL = l.TTL() resp.TTL = l.TTL()
resp.Header = &pb.ResponseHeader{Revision: a.s.KV().Rev()} resp.Header = newHeader(a.s)
} }
return resp, err return resp, err
} }
func (a *applierV3backend) LeaseRevoke(lc *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error) { func (a *applierV3backend) LeaseRevoke(lc *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error) {
err := a.s.lessor.Revoke(lease.LeaseID(lc.ID)) err := a.s.lessor.Revoke(lease.LeaseID(lc.ID))
return &pb.LeaseRevokeResponse{Header: &pb.ResponseHeader{Revision: a.s.KV().Rev()}}, err return &pb.LeaseRevokeResponse{Header: newHeader(a.s)}, err
} }
func (a *applierV3backend) Alarm(ar *pb.AlarmRequest) (*pb.AlarmResponse, error) { func (a *applierV3backend) Alarm(ar *pb.AlarmRequest) (*pb.AlarmResponse, error) {
@ -609,69 +608,125 @@ func (a *applierV3backend) AuthEnable() (*pb.AuthEnableResponse, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &pb.AuthEnableResponse{}, nil return &pb.AuthEnableResponse{Header: newHeader(a.s)}, nil
} }
func (a *applierV3backend) AuthDisable() (*pb.AuthDisableResponse, error) { func (a *applierV3backend) AuthDisable() (*pb.AuthDisableResponse, error) {
a.s.AuthStore().AuthDisable() a.s.AuthStore().AuthDisable()
return &pb.AuthDisableResponse{}, nil return &pb.AuthDisableResponse{Header: newHeader(a.s)}, nil
} }
func (a *applierV3backend) Authenticate(r *pb.InternalAuthenticateRequest) (*pb.AuthenticateResponse, error) { func (a *applierV3backend) Authenticate(r *pb.InternalAuthenticateRequest) (*pb.AuthenticateResponse, error) {
ctx := context.WithValue(context.WithValue(context.TODO(), "index", a.s.consistIndex.ConsistentIndex()), "simpleToken", r.SimpleToken) ctx := context.WithValue(context.WithValue(context.Background(), "index", a.s.consistIndex.ConsistentIndex()), "simpleToken", r.SimpleToken)
return a.s.AuthStore().Authenticate(ctx, r.Name, r.Password) resp, err := a.s.AuthStore().Authenticate(ctx, r.Name, r.Password)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserAdd(r *pb.AuthUserAddRequest) (*pb.AuthUserAddResponse, error) { func (a *applierV3backend) UserAdd(r *pb.AuthUserAddRequest) (*pb.AuthUserAddResponse, error) {
return a.s.AuthStore().UserAdd(r) resp, err := a.s.AuthStore().UserAdd(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserDelete(r *pb.AuthUserDeleteRequest) (*pb.AuthUserDeleteResponse, error) { func (a *applierV3backend) UserDelete(r *pb.AuthUserDeleteRequest) (*pb.AuthUserDeleteResponse, error) {
return a.s.AuthStore().UserDelete(r) resp, err := a.s.AuthStore().UserDelete(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserChangePassword(r *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error) { func (a *applierV3backend) UserChangePassword(r *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error) {
return a.s.AuthStore().UserChangePassword(r) resp, err := a.s.AuthStore().UserChangePassword(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserGrantRole(r *pb.AuthUserGrantRoleRequest) (*pb.AuthUserGrantRoleResponse, error) { func (a *applierV3backend) UserGrantRole(r *pb.AuthUserGrantRoleRequest) (*pb.AuthUserGrantRoleResponse, error) {
return a.s.AuthStore().UserGrantRole(r) resp, err := a.s.AuthStore().UserGrantRole(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) { func (a *applierV3backend) UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) {
return a.s.AuthStore().UserGet(r) resp, err := a.s.AuthStore().UserGet(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserRevokeRole(r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) { func (a *applierV3backend) UserRevokeRole(r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) {
return a.s.AuthStore().UserRevokeRole(r) resp, err := a.s.AuthStore().UserRevokeRole(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) { func (a *applierV3backend) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) {
return a.s.AuthStore().RoleAdd(r) resp, err := a.s.AuthStore().RoleAdd(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) RoleGrantPermission(r *pb.AuthRoleGrantPermissionRequest) (*pb.AuthRoleGrantPermissionResponse, error) { func (a *applierV3backend) RoleGrantPermission(r *pb.AuthRoleGrantPermissionRequest) (*pb.AuthRoleGrantPermissionResponse, error) {
return a.s.AuthStore().RoleGrantPermission(r) resp, err := a.s.AuthStore().RoleGrantPermission(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) { func (a *applierV3backend) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) {
return a.s.AuthStore().RoleGet(r) resp, err := a.s.AuthStore().RoleGet(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) { func (a *applierV3backend) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) {
return a.s.AuthStore().RoleRevokePermission(r) resp, err := a.s.AuthStore().RoleRevokePermission(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) { func (a *applierV3backend) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) {
return a.s.AuthStore().RoleDelete(r) resp, err := a.s.AuthStore().RoleDelete(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) UserList(r *pb.AuthUserListRequest) (*pb.AuthUserListResponse, error) { func (a *applierV3backend) UserList(r *pb.AuthUserListRequest) (*pb.AuthUserListResponse, error) {
return a.s.AuthStore().UserList(r) resp, err := a.s.AuthStore().UserList(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
func (a *applierV3backend) RoleList(r *pb.AuthRoleListRequest) (*pb.AuthRoleListResponse, error) { func (a *applierV3backend) RoleList(r *pb.AuthRoleListRequest) (*pb.AuthRoleListResponse, error) {
return a.s.AuthStore().RoleList(r) resp, err := a.s.AuthStore().RoleList(r)
if resp != nil {
resp.Header = newHeader(a.s)
}
return resp, err
} }
type quotaApplierV3 struct { type quotaApplierV3 struct {
@ -836,3 +891,12 @@ func pruneKVs(rr *mvcc.RangeResult, isPrunable func(*mvccpb.KeyValue) bool) {
} }
rr.KVs = rr.KVs[:j] rr.KVs = rr.KVs[:j]
} }
func newHeader(s *EtcdServer) *pb.ResponseHeader {
return &pb.ResponseHeader{
ClusterId: uint64(s.Cluster().ID()),
MemberId: uint64(s.ID()),
Revision: s.KV().Rev(),
RaftTerm: s.Term(),
}
}

View File

@ -1253,9 +1253,14 @@ func (s *EtcdServer) apply(es []raftpb.Entry, confState *raftpb.ConfState) (appl
case raftpb.EntryNormal: case raftpb.EntryNormal:
s.applyEntryNormal(&e) s.applyEntryNormal(&e)
case raftpb.EntryConfChange: case raftpb.EntryConfChange:
// set the consistent index of current executing entry
if e.Index > s.consistIndex.ConsistentIndex() {
s.consistIndex.setConsistentIndex(e.Index)
}
var cc raftpb.ConfChange var cc raftpb.ConfChange
pbutil.MustUnmarshal(&cc, e.Data) pbutil.MustUnmarshal(&cc, e.Data)
removedSelf, err := s.applyConfChange(cc, confState) removedSelf, err := s.applyConfChange(cc, confState)
s.setAppliedIndex(e.Index)
shouldStop = shouldStop || removedSelf shouldStop = shouldStop || removedSelf
s.w.Trigger(cc.ID, err) s.w.Trigger(cc.ID, err)
default: default:

View File

@ -31,8 +31,9 @@ type bridge struct {
l net.Listener l net.Listener
conns map[*bridgeConn]struct{} conns map[*bridgeConn]struct{}
stopc chan struct{} stopc chan struct{}
wg sync.WaitGroup pausec chan struct{}
wg sync.WaitGroup
mu sync.Mutex mu sync.Mutex
} }
@ -43,8 +44,11 @@ func newBridge(addr string) (*bridge, error) {
inaddr: addr + "0", inaddr: addr + "0",
outaddr: addr, outaddr: addr,
conns: make(map[*bridgeConn]struct{}), conns: make(map[*bridgeConn]struct{}),
stopc: make(chan struct{}, 1), stopc: make(chan struct{}),
pausec: make(chan struct{}),
} }
close(b.pausec)
l, err := transport.NewUnixListener(b.inaddr) l, err := transport.NewUnixListener(b.inaddr)
if err != nil { if err != nil {
return nil, fmt.Errorf("listen failed on socket %s (%v)", addr, err) return nil, fmt.Errorf("listen failed on socket %s (%v)", addr, err)
@ -59,10 +63,13 @@ func (b *bridge) URL() string { return "unix://" + b.inaddr }
func (b *bridge) Close() { func (b *bridge) Close() {
b.l.Close() b.l.Close()
b.mu.Lock()
select { select {
case b.stopc <- struct{}{}: case <-b.stopc:
default: default:
close(b.stopc)
} }
b.mu.Unlock()
b.wg.Wait() b.wg.Wait()
} }
@ -75,6 +82,22 @@ func (b *bridge) Reset() {
b.conns = make(map[*bridgeConn]struct{}) b.conns = make(map[*bridgeConn]struct{})
} }
func (b *bridge) Pause() {
b.mu.Lock()
b.pausec = make(chan struct{})
b.mu.Unlock()
}
func (b *bridge) Unpause() {
b.mu.Lock()
select {
case <-b.pausec:
default:
close(b.pausec)
}
b.mu.Unlock()
}
func (b *bridge) serveListen() { func (b *bridge) serveListen() {
defer func() { defer func() {
b.l.Close() b.l.Close()
@ -91,13 +114,23 @@ func (b *bridge) serveListen() {
if ierr != nil { if ierr != nil {
return return
} }
b.mu.Lock()
pausec := b.pausec
b.mu.Unlock()
select {
case <-b.stopc:
inc.Close()
return
case <-pausec:
}
outc, oerr := net.Dial("unix", b.outaddr) outc, oerr := net.Dial("unix", b.outaddr)
if oerr != nil { if oerr != nil {
inc.Close() inc.Close()
return return
} }
bc := &bridgeConn{inc, outc} bc := &bridgeConn{inc, outc, make(chan struct{})}
b.wg.Add(1) b.wg.Add(1)
b.mu.Lock() b.mu.Lock()
b.conns[bc] = struct{}{} b.conns[bc] = struct{}{}
@ -108,6 +141,7 @@ func (b *bridge) serveListen() {
func (b *bridge) serveConn(bc *bridgeConn) { func (b *bridge) serveConn(bc *bridgeConn) {
defer func() { defer func() {
close(bc.donec)
bc.Close() bc.Close()
b.mu.Lock() b.mu.Lock()
delete(b.conns, bc) delete(b.conns, bc)
@ -119,21 +153,29 @@ func (b *bridge) serveConn(bc *bridgeConn) {
wg.Add(2) wg.Add(2)
go func() { go func() {
io.Copy(bc.out, bc.in) io.Copy(bc.out, bc.in)
bc.close()
wg.Done() wg.Done()
}() }()
go func() { go func() {
io.Copy(bc.in, bc.out) io.Copy(bc.in, bc.out)
bc.close()
wg.Done() wg.Done()
}() }()
wg.Wait() wg.Wait()
} }
type bridgeConn struct { type bridgeConn struct {
in net.Conn in net.Conn
out net.Conn out net.Conn
donec chan struct{}
} }
func (bc *bridgeConn) Close() { func (bc *bridgeConn) Close() {
bc.close()
<-bc.donec
}
func (bc *bridgeConn) close() {
bc.in.Close() bc.in.Close()
bc.out.Close() bc.out.Close()
} }

View File

@ -532,7 +532,9 @@ func (m *member) electionTimeout() time.Duration {
return time.Duration(m.s.Cfg.ElectionTicks) * time.Millisecond return time.Duration(m.s.Cfg.ElectionTicks) * time.Millisecond
} }
func (m *member) DropConnections() { m.grpcBridge.Reset() } func (m *member) DropConnections() { m.grpcBridge.Reset() }
func (m *member) PauseConnections() { m.grpcBridge.Pause() }
func (m *member) UnpauseConnections() { m.grpcBridge.Unpause() }
// NewClientV3 creates a new grpc client connection to the member // NewClientV3 creates a new grpc client connection to the member
func NewClientV3(m *member) (*clientv3.Client, error) { func NewClientV3(m *member) (*clientv3.Client, error) {

View File

@ -28,7 +28,6 @@ import (
"net" "net"
"os" "os"
"path/filepath" "path/filepath"
"strings"
"time" "time"
"github.com/coreos/etcd/pkg/fileutil" "github.com/coreos/etcd/pkg/fileutil"
@ -120,10 +119,11 @@ func SelfCert(dirpath string, hosts []string) (info TLSInfo, err error) {
} }
for _, host := range hosts { for _, host := range hosts {
if ip := net.ParseIP(host); ip != nil { h, _, _ := net.SplitHostPort(host)
if ip := net.ParseIP(h); ip != nil {
tmpl.IPAddresses = append(tmpl.IPAddresses, ip) tmpl.IPAddresses = append(tmpl.IPAddresses, ip)
} else { } else {
tmpl.DNSNames = append(tmpl.DNSNames, strings.Split(host, ":")[0]) tmpl.DNSNames = append(tmpl.DNSNames, h)
} }
} }

View File

@ -183,7 +183,8 @@ func (h *snapshotHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
} }
dec := &messageDecoder{r: r.Body} dec := &messageDecoder{r: r.Body}
m, err := dec.decode() // let snapshots be very large since they can exceed 512MB for large installations
m, err := dec.decodeLimit(uint64(1 << 63))
if err != nil { if err != nil {
msg := fmt.Sprintf("failed to decode raft message (%v)", err) msg := fmt.Sprintf("failed to decode raft message (%v)", err)
plog.Errorf(msg) plog.Errorf(msg)

View File

@ -48,12 +48,16 @@ var (
) )
func (dec *messageDecoder) decode() (raftpb.Message, error) { func (dec *messageDecoder) decode() (raftpb.Message, error) {
return dec.decodeLimit(readBytesLimit)
}
func (dec *messageDecoder) decodeLimit(numBytes uint64) (raftpb.Message, error) {
var m raftpb.Message var m raftpb.Message
var l uint64 var l uint64
if err := binary.Read(dec.r, binary.BigEndian, &l); err != nil { if err := binary.Read(dec.r, binary.BigEndian, &l); err != nil {
return m, err return m, err
} }
if l > readBytesLimit { if l > numBytes {
return m, ErrExceedSizeLimit return m, ErrExceedSizeLimit
} }
buf := make([]byte, int(l)) buf := make([]byte, int(l))

View File

@ -26,7 +26,7 @@ import (
var ( var (
// MinClusterVersion is the min cluster version this etcd binary is compatible with. // MinClusterVersion is the min cluster version this etcd binary is compatible with.
MinClusterVersion = "3.0.0" MinClusterVersion = "3.0.0"
Version = "3.1.5" Version = "3.1.10"
APIVersion = "unknown" APIVersion = "unknown"
// Git SHA Value will be set during build // Git SHA Value will be set during build