Merge pull request #49572 from timothysc/etcd_3_1_10_client

Automatic merge from submit-queue (batch tested with PRs 47357, 49514, 49271, 49572, 49476)

Updates etcd-client to 3.1.10

I have no idea why azure sdk update became transitive but godeps we're restored before update

Fixes: https://github.com/kubernetes/kubernetes/issues/49386
xref: https://github.com/kubernetes/kubernetes/pull/49393

```
NONE
```

/cc @kubernetes/sig-scalability-pr-reviews @kubernetes/sig-api-machinery-misc @hongchaodeng @wojtek-t
pull/6/head
Kubernetes Submit Queue 2017-07-26 12:03:50 -07:00 committed by GitHub
commit 112c401b10
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",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/auth",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/auth/authpb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/client",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/clientv3",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/compactor",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/discovery",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/error",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http/httptypes",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/auth",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/membership",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/stats",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/integration",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/lease",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/lease/leasehttp",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/lease/leasepb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc/backend",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/adt",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/contention",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/cpuutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/crc",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/httputil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/idutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/ioutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/logutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/monotime",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/netutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/pbutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/runtime",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/schedule",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/testutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/transport",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/types",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/wait",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/proxy/grpcproxy",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/proxy/grpcproxy/cache",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/raft",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/raft/raftpb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/rafthttp",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/snap",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/snap/snappb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/store",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/version",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/wal",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/wal/walpb",
"Comment": "v3.1.5",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Comment": "v3.1.10",
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/go-oidc/http",
@ -2147,82 +2147,82 @@
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/apparmor",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/fs",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/systemd",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/configs",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/configs/validate",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/criurpc",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/keys",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/label",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/seccomp",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/selinux",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/stacktrace",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/system",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/user",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/utils",
"Comment": "v1.0.0-rc2-49-gd223e2ad",
"Comment": "v1.0.0-rc2-49-gd223e2a",
"Rev": "d223e2adae83f62d58448a799a5da05730228089"
},
{
@ -2640,7 +2640,6 @@
},
{
"ImportPath": "github.com/xiang90/probing",
"Comment": "0.0.1",
"Rev": "07dd2e8dfe18522e9c447ba95f2fe95262f63bb2"
},
{

View File

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

View File

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

View File

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

View File

@ -28,47 +28,47 @@
},
{
"ImportPath": "github.com/coreos/etcd/auth/authpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/client",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/clientv3",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/transport",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/types",
"Rev": "20490caaf0dcd96bb4a95e40625559def8ef5b04"
"Rev": "0520cb9304cb2385f7e72b8bc02d6e4d3257158a"
},
{
"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 {
tokensMu sync.Mutex
tokens map[string]time.Time
stopCh chan chan struct{}
donec chan struct{}
stopc chan struct{}
deleteTokenFunc func(string)
}
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
mu *sync.Mutex
}
func (tm *simpleTokenTTLKeeper) stop() {
waitCh := make(chan struct{})
tm.stopCh <- waitCh
<-waitCh
close(tm.stopCh)
select {
case tm.stopc <- struct{}{}:
case <-tm.donec:
}
<-tm.donec
}
func (tm *simpleTokenTTLKeeper) addSimpleToken(token string) {
@ -76,27 +68,45 @@ func (tm *simpleTokenTTLKeeper) deleteSimpleToken(token string) {
func (tm *simpleTokenTTLKeeper) run() {
tokenTicker := time.NewTicker(simpleTokenTTLResolution)
defer tokenTicker.Stop()
defer func() {
tokenTicker.Stop()
close(tm.donec)
}()
for {
select {
case <-tokenTicker.C:
nowtime := time.Now()
tm.tokensMu.Lock()
tm.mu.Lock()
for t, tokenendtime := range tm.tokens {
if nowtime.After(tokenendtime) {
tm.deleteTokenFunc(t)
delete(tm.tokens, t)
}
}
tm.tokensMu.Unlock()
case waitCh := <-tm.stopCh:
tm.tokens = make(map[string]time.Time)
waitCh <- struct{}{}
tm.mu.Unlock()
case <-tm.stopc:
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) {
ret := make([]byte, defaultSimpleTokenLength)
@ -113,9 +123,7 @@ func (as *authStore) GenSimpleToken() (string, error) {
}
func (as *authStore) assignSimpleTokenToUser(username, token string) {
as.simpleTokenKeeper.tokensMu.Lock()
as.simpleTokensMu.Lock()
_, ok := as.simpleTokens[token]
if ok {
plog.Panicf("token %s is alredy used", token)
@ -124,14 +132,12 @@ func (as *authStore) assignSimpleTokenToUser(username, token string) {
as.simpleTokens[token] = username
as.simpleTokenKeeper.addSimpleToken(token)
as.simpleTokensMu.Unlock()
as.simpleTokenKeeper.tokensMu.Unlock()
}
func (as *authStore) invalidateUser(username string) {
if as.simpleTokenKeeper == nil {
return
}
as.simpleTokenKeeper.tokensMu.Lock()
as.simpleTokensMu.Lock()
for token, name := range as.simpleTokens {
if strings.Compare(name, username) == 0 {
@ -140,5 +146,4 @@ func (as *authStore) invalidateUser(username string) {
}
}
as.simpleTokensMu.Unlock()
as.simpleTokenKeeper.tokensMu.Unlock()
}

View File

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

View File

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

View File

@ -616,10 +616,24 @@ func (w *watchGrpcStream) serveSubstream(ws *watcherStream, resumec chan struct{
if ws.initReq.createdNotify {
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 {
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) {
if err := ams.isAuthenticated(ctx); err != nil {
return nil, err
}
return ams.maintenanceServer.Status(ctx, ar)
}

View File

@ -520,15 +520,14 @@ func (a *applierV3backend) LeaseGrant(lc *pb.LeaseGrantRequest) (*pb.LeaseGrantR
if err == nil {
resp.ID = int64(l.ID)
resp.TTL = l.TTL()
resp.Header = &pb.ResponseHeader{Revision: a.s.KV().Rev()}
resp.Header = newHeader(a.s)
}
return resp, err
}
func (a *applierV3backend) LeaseRevoke(lc *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error) {
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) {
@ -609,69 +608,125 @@ func (a *applierV3backend) AuthEnable() (*pb.AuthEnableResponse, error) {
if err != nil {
return nil, err
}
return &pb.AuthEnableResponse{}, nil
return &pb.AuthEnableResponse{Header: newHeader(a.s)}, nil
}
func (a *applierV3backend) AuthDisable() (*pb.AuthDisableResponse, error) {
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) {
ctx := context.WithValue(context.WithValue(context.TODO(), "index", a.s.consistIndex.ConsistentIndex()), "simpleToken", r.SimpleToken)
return a.s.AuthStore().Authenticate(ctx, r.Name, r.Password)
ctx := context.WithValue(context.WithValue(context.Background(), "index", a.s.consistIndex.ConsistentIndex()), "simpleToken", r.SimpleToken)
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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) {
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 {
@ -836,3 +891,12 @@ func pruneKVs(rr *mvcc.RangeResult, isPrunable func(*mvccpb.KeyValue) bool) {
}
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:
s.applyEntryNormal(&e)
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
pbutil.MustUnmarshal(&cc, e.Data)
removedSelf, err := s.applyConfChange(cc, confState)
s.setAppliedIndex(e.Index)
shouldStop = shouldStop || removedSelf
s.w.Trigger(cc.ID, err)
default:

View File

@ -31,8 +31,9 @@ type bridge struct {
l net.Listener
conns map[*bridgeConn]struct{}
stopc chan struct{}
wg sync.WaitGroup
stopc chan struct{}
pausec chan struct{}
wg sync.WaitGroup
mu sync.Mutex
}
@ -43,8 +44,11 @@ func newBridge(addr string) (*bridge, error) {
inaddr: addr + "0",
outaddr: addr,
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)
if err != nil {
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() {
b.l.Close()
b.mu.Lock()
select {
case b.stopc <- struct{}{}:
case <-b.stopc:
default:
close(b.stopc)
}
b.mu.Unlock()
b.wg.Wait()
}
@ -75,6 +82,22 @@ func (b *bridge) Reset() {
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() {
defer func() {
b.l.Close()
@ -91,13 +114,23 @@ func (b *bridge) serveListen() {
if ierr != nil {
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)
if oerr != nil {
inc.Close()
return
}
bc := &bridgeConn{inc, outc}
bc := &bridgeConn{inc, outc, make(chan struct{})}
b.wg.Add(1)
b.mu.Lock()
b.conns[bc] = struct{}{}
@ -108,6 +141,7 @@ func (b *bridge) serveListen() {
func (b *bridge) serveConn(bc *bridgeConn) {
defer func() {
close(bc.donec)
bc.Close()
b.mu.Lock()
delete(b.conns, bc)
@ -119,21 +153,29 @@ func (b *bridge) serveConn(bc *bridgeConn) {
wg.Add(2)
go func() {
io.Copy(bc.out, bc.in)
bc.close()
wg.Done()
}()
go func() {
io.Copy(bc.in, bc.out)
bc.close()
wg.Done()
}()
wg.Wait()
}
type bridgeConn struct {
in net.Conn
out net.Conn
in net.Conn
out net.Conn
donec chan struct{}
}
func (bc *bridgeConn) Close() {
bc.close()
<-bc.donec
}
func (bc *bridgeConn) close() {
bc.in.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
}
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
func NewClientV3(m *member) (*clientv3.Client, error) {

View File

@ -28,7 +28,6 @@ import (
"net"
"os"
"path/filepath"
"strings"
"time"
"github.com/coreos/etcd/pkg/fileutil"
@ -120,10 +119,11 @@ func SelfCert(dirpath string, hosts []string) (info TLSInfo, err error) {
}
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)
} 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}
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 {
msg := fmt.Sprintf("failed to decode raft message (%v)", err)
plog.Errorf(msg)

View File

@ -48,12 +48,16 @@ var (
)
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 l uint64
if err := binary.Read(dec.r, binary.BigEndian, &l); err != nil {
return m, err
}
if l > readBytesLimit {
if l > numBytes {
return m, ErrExceedSizeLimit
}
buf := make([]byte, int(l))

View File

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