mirror of https://github.com/k3s-io/k3s
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-tpull/6/head
commit
112c401b10
|
@ -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"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/client.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/disks.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/disks.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/models.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/models.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/snapshots.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/snapshots.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/version.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/Azure/azure-sdk-for-go/arm/disk/version.go
generated
vendored
Normal file → Executable 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()
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue