Anthony Romano
c1300c81b3
concurrency: clarify Observe semantics; only fetches subsequence
2017-04-22 11:26:11 -07:00
Anthony Romano
4ab818a856
clientv3: only update initReq.rev == 0 with creation watch revision
...
Always updating the initReq.rev on watch create will resume from the wrong
revision if initReq is ever nonzero.
2017-04-21 20:22:51 -07:00
Anthony Romano
ec470944f8
clientv3/integration: test watch resume with disconnect before first event
2017-04-21 20:22:51 -07:00
Anthony Romano
35dff4cbc3
Merge pull request #7769 from heyitsanthony/more-time-lease-test
...
clientv3/integration: sleep less in TestLeaseRenewLostQuorum
2017-04-19 00:57:49 -07:00
Hitoshi Mitake
d3456b5ecd
Merge pull request #7759 from mitake/fix-7724
...
*: simply ignore ErrAuthNotEnabled in clientv3 if auth is not enabled
2017-04-19 16:07:18 +09:00
Anthony Romano
c654370d6d
clientv3/integration: sleep less in TestLeaseRenewLostQuorum
...
Server Stop+Restart sometimes takes more than 500ms, so with a
one second window the lease client may not get a chance to issue
a keepalive and get a lease extension before the lease client
timer elapses. Instead, sleep for a shorter period of time (while
still guaranteeing a keepalive resend during quorum loss) and
skip the test if server restart takes longer than the lease TTL.
Fixes #7346
2017-04-18 19:35:20 -07:00
Hitoshi Mitake
e1306bff8f
*: simply ignore ErrAuthNotEnabled in clientv3 if auth is not enabled
...
Fix https://github.com/coreos/etcd/issues/7724
2017-04-19 11:27:14 +09:00
Anthony Romano
8fdf8f752b
Merge pull request #7752 from heyitsanthony/clientv3-fetch-keyspace-pfx
...
clientv3: translate WithPrefix() into WithFromKey() for empty key
2017-04-18 09:24:53 -07:00
Gyu-Ho Lee
81291b23b1
clientv3/integration: add 'TestUserErrorAuth'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 17:11:37 -07:00
Anthony Romano
f92c11e1f2
clientv3: translate WithPrefix() into WithFromKey() for empty key
2017-04-16 20:47:18 -07:00
Anthony Romano
f0143916de
clientv3/integration: test fetching entire keyspace
2017-04-16 20:47:18 -07:00
darasion
0e7fd4a37c
clientv3/namespace: fix incorrect watching prefix-end
...
using "abc" will watch the wrong range when WithPrefix() specified.
2017-04-15 22:31:50 +08:00
Anthony Romano
2951e7f6e4
Merge pull request #7733 from heyitsanthony/fix-client-foreign-dial
...
clientv3: let client dial endpoints not in the balancer
2017-04-14 10:45:17 -07:00
Gyu-Ho Lee
6c2fb5105d
clientv3/integration: use 'transport.IsClosedConnError'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 11:55:23 -07:00
Anthony Romano
46971fa1db
integration: test client can dial endpoints not in balancer
2017-04-12 20:07:04 -07:00
Anthony Romano
9b8e39e7ca
clientv3: let client.Dial() dial endpoints not in the balancer
2017-04-12 20:07:03 -07:00
Anthony Romano
4f9aa276bd
*: rename Snapshot STM isolation to SerializableSnapshot
...
Pure Snapshot isolation would permit read conflicts. Change the name
from Snapshot to SerializableSnapshot to reflect that it will also
reject read conflicts.
2017-04-11 17:17:50 -07:00
Anthony Romano
4b4f5be74a
concurrency: don't skip leader updates in Observe()
...
The Get for the leader key will fetch based on the latest revision
instead of the deletion revision, missing leader updates between
the delete and the Get.
Although it's usually safe to skip these updates since they're
stale, it makes testing more difficult and in some cases the
full leader update history is desirable.
2017-04-07 16:36:38 -07:00
Anthony Romano
80c1b9c13a
concurrency: support resuming elections if leadership already held
...
If a client already knows it holds leadership, let it create an
election object with its leadership information.
2017-04-07 16:36:38 -07:00
Anthony Romano
d1ae4cd5bd
concurrency: only delete on election resignation if create revision matches
...
Addresses a case where two clients share the same lease. A client resigns but
disconnects / crashes and doesn't realize it. Another client reuses the
lease and gets leadership with a new key. The old client comes back and
tries to resign again, revoking the new leadership of the new client.
2017-04-07 16:36:37 -07:00
Anthony Romano
4b5bb7f212
concurrency: return v3.GetResponse for Election.Leader()
...
The full information about the leader's key is necessary to
safely use elections with transactions. Instead of returning
only the value on Leader(), return the entire GetResposne.
2017-04-07 16:36:37 -07:00
Anthony Romano
a6cab69c88
concurrency: expose leader revision and proclaim headers for election
2017-04-07 16:36:37 -07:00
Gyu-Ho Lee
369d561350
clientv3/integration: fix minor typo in Fatalf
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-06 18:26:42 -07:00
Anthony Romano
bea4c62965
Merge pull request #7677 from heyitsanthony/fix-waitsubstream
...
clientv3: register waitCancelSubstreams closingc goroutine with waitgroup
2017-04-06 11:10:06 -07:00
Anthony Romano
aab2eda7df
clientv3: register waitCancelSubstreams closingc goroutine with waitgroup
...
Fixes #7598
2017-04-05 16:06:53 -07:00
Gyu-Ho Lee
dee467dc24
clientv3/yaml: use TLS 1.2 in min version
...
To be consistent with 'pkg/transport'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-05 11:50:35 -07:00
Anthony Romano
d42c1f5131
Merge pull request #7646 from andelf/fix-unix-socket-url
...
*: fix a bug in handling unix socket urls
2017-04-05 09:24:38 -07:00
andelf
4f27981c46
*: fix a bug in handling unix socket urls
...
Now use url.Host + url.Path as unix socket path
Fixes #7644
2017-04-05 14:33:13 +08:00
Gyu-Ho Lee
d51d381eca
Merge pull request #7656 from gyuho/more-adapter
...
*: add cluster API adapter
2017-04-04 20:10:24 -07:00
Gyu-Ho Lee
9bc3c0bd05
clientv3: remove unused fields from 'auth'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 08:17:36 -07:00
Gyu-Ho Lee
7f2d6b3ef6
clientv3,v3client: add cluster embedded client
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 08:14:18 -07:00
Anthony Romano
a0149106b8
clientv3: fix go1.8 go fmt warning in test
2017-04-03 14:00:06 -07:00
Anthony Romano
f13bea0bb0
Merge pull request #7639 from heyitsanthony/fix-userflag-timeout
...
clientv3: respect dial timeout in auth
2017-04-03 09:30:48 -07:00
Anthony Romano
5aebe1a52d
clientv3: test dial timeout is respected when using auth
2017-03-31 15:14:46 -07:00
Anthony Romano
62d7bae496
clientv3: respect dial timeout when authenticating
...
Fixes #7627
2017-03-31 15:14:46 -07:00
Anthony Romano
8024a0d15f
clientv3: support WithRequireLeader in lease client
...
Unconditionally opens a WithRequireLeader stream in the lease client. Any
keep alive channels opened using WithRequireLeader will be closed when
the leader is lost.
Fixes #7275
2017-03-30 21:39:36 -07:00
Anthony Romano
7db7744737
clientv3/integration: test lease WithRequireLeader
2017-03-30 20:18:33 -07:00
Gyu-Ho Lee
0bf110e27f
clientv3,v3client: maintenance to embedded client
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-28 14:12:43 -07:00
Anthony Romano
36ece32a61
Merge pull request #7582 from heyitsanthony/fix-watch-stream-leak
...
clientv3: use waitgroup to wait for substream goroutine teardown
2017-03-23 12:24:06 -07:00
Anthony Romano
23719f99c6
Merge pull request #7563 from heyitsanthony/fix-testdialcancel-leak
...
clientv3: wait for Get goroutine in TestDialCancel
2017-03-23 10:07:23 -07:00
Anthony Romano
a39107a3b8
clientv3: use waitgroup to wait for substream goroutine teardown
...
When a grpc watch stream is torn down, it will join on its logical substream
goroutines by waiting for each to close a channel. This doesn't guarantee
the substream is fully exited, though, but only about to exit and can be
waiting to resume even after Watch.Close finishes. Instead, use a
waitgroup.Done at the very end of the substream defer.
Fixes #7573
2017-03-22 23:27:26 -07:00
Anthony Romano
85f989ab3d
Documentation, op-guide, clientv3: add documentation for namespacing
2017-03-22 16:45:38 -07:00
Anthony Romano
66d147766f
clientv3/integration: simple namespace wrapper tests
2017-03-22 16:45:38 -07:00
Anthony Romano
1f8c7b33e7
namespace: a wrapper for clientv3 to namespace requests
2017-03-22 14:09:09 -07:00
Anthony Romano
f9b6066dd6
clientv3: make ops and compares non-opaque and mutable
...
Fixes #7250
2017-03-22 14:08:59 -07:00
Anthony Romano
dd465d0e40
clientv3: remove redundant error handling code
2017-03-22 01:08:23 -07:00
Anthony Romano
d1a9ccb2b9
clientv3: wait for Get goroutine in TestDialCancel
2017-03-21 16:43:39 -07:00
fanmin shi
902c676cdb
Merge pull request #7397 from fanminshi/fix_SetEndpoints
...
clientv3/balancer: update eps if pinAddr is not included in updateAddrs
2017-03-15 12:16:15 -07:00
fanmin shi
a23609efe6
clientv3: update eps if pinAddr is not included in updateAddrs
...
FIXES #7392
2017-03-15 11:03:25 -07:00
Anthony Romano
27960911af
Merge pull request #7500 from heyitsanthony/fix-balancer-test-leak
...
clientv3: synchronize on goroutines in TestBalancerDoNotBlockOnClose
2017-03-15 08:58:03 -07:00
Anthony Romano
b36734f1d3
clientv3: synchronize on goroutines in TestBalancerDoNotBlockOnClose
...
Was leaking dialers.
2017-03-14 19:53:33 -07:00
Anthony Romano
a087325452
clientv3: close open watch channel if substream is closing on reconnect
...
If substream is closing but outc is still open while reconnecting, then outc
would only be closed once the watch client would connect or once the watch
client is closed. This was leading to deadlocks in the proxy tests. Instead,
close immediately if the context is canceled.
Fixes #7503
2017-03-14 17:25:18 -07:00
Anthony Romano
1a6be700d8
Merge pull request #7444 from heyitsanthony/lock-service
...
grpc lock service
2017-03-14 00:01:34 -07:00
fanmin shi
3a61fe596b
Merge pull request #7423 from purpleidea/feat/clientv3util-examples
...
clientv3util: Add KeyExists and KeyMissing examples
2017-03-13 17:26:57 -07:00
fanmin shi
94d5936180
Update example_key_test.go
2017-03-13 16:54:26 -07:00
Anthony Romano
d51c8bb640
concurrency: support returning response header for mutex
2017-03-13 15:23:26 -07:00
Anthony Romano
a2cdd908dc
clientv3: permit creating client without grpc connection
...
For creating client from etcdserver.
2017-03-13 15:23:26 -07:00
Anthony Romano
593489d454
clientv3: use CheckAfterTest after terminating cluster
...
AfterTest() has a delay that waits for runtime goroutines to exit;
CheckLeakedGoroutine does not. Since the test runner manages the
test cluster for examples, there is no delay between terminating
the cluster and checking for leaked goroutines. Instead, apply
Aftertest checking before running CheckLeakedGoroutine to let runtime
http goroutines finish.
2017-03-10 12:23:46 -08:00
Xiang Li
0a692b0524
Merge pull request #7443 from fanminshi/fix_balancer_deadlock
...
clientv3: serialize updating notifych in balancer
2017-03-10 07:48:47 -08:00
fanmin shi
310641630e
clientv3: send frst down() func after recieving first notified addr
...
This ensures the ordering of down and up calls.
2017-03-09 12:20:36 -08:00
fanmin shi
8baaa06cce
clientv3: serialize updating notifych in balancer
...
FIXES #7283
2017-03-09 12:20:28 -08:00
Gyu-Ho Lee
5f4412996d
clientv3: define error type for closed watcher
2017-03-09 02:29:54 -08:00
James Shubin
889dd1b22f
clientv3util: Add KeyExists and KeyMissing examples
2017-03-09 02:34:30 -05:00
fanmin shi
7a25257fb2
clientv3: close balancer to avoid goroutine leak in balancer_test.go
2017-03-08 13:37:18 -08:00
Anthony Romano
270dc9427b
clientv3: pass back dial error on dial timeout
...
Fixes #7419
2017-03-06 09:33:10 -08:00
James Shubin
71937151d0
clientv3: Add KeyExists and KeyNotExists Cmp helpers
...
This is quite useful for transactions.
2017-03-03 18:45:10 -05:00
Anthony Romano
cf547aa403
clientv3: bump example requestTimeout for slow CI
...
Fixes #7398
2017-03-01 14:37:40 -08:00
Anthony Romano
c231950cdb
clientv3: use any port for metrics example
...
Was getting bind conflicts causing failures on semaphore.
2017-02-24 14:33:08 -08:00
Anthony Romano
c3a678be75
integration: permit background watch streams in TestWatchCancelOnServer
...
Fixes #7272
2017-02-22 09:54:08 -08:00
Anthony Romano
12d3e4e473
integration: test keepalives for short TTLs
2017-02-21 13:15:45 -08:00
Anthony Romano
3c306cdb3e
clientv3: do not set next keepalive time <= now+TTL
2017-02-21 13:15:45 -08:00
Anthony Romano
0c0fbbd7c5
Merge pull request #7342 from heyitsanthony/client-version
...
clientv3: version checking
2017-02-21 11:46:48 -08:00
yiyiyaya
56b4e6b71f
clientv3: fix typo in README
...
Fix https://github.com/coreos/etcd/issues/7337
2017-02-21 10:33:17 -08:00
Anthony Romano
51435df179
integration: test RejectOldCluster
2017-02-16 21:33:14 -08:00
Anthony Romano
4d2aa80ecf
clientv3: add cluster version checking
2017-02-16 18:14:14 -08:00
Anthony Romano
c9452c6ad4
clientv3: let user provide a client context through Config
2017-02-16 18:14:14 -08:00
fanmin shi
a5cf7fdc87
Merge pull request #7221 from fanminshi/grpcproxy_support_lease_coalescing
...
grpcproxy: support lease coalescing
2017-02-16 13:42:49 -08:00
Xiang
4fb8d30f0a
clientv3: fix lease keepalive duration
2017-02-16 12:04:07 -08:00
Xiang Li
5d3597a5f2
Merge pull request #7338 from xiang90/fix_l
...
clientv3: fix lease keepalive duration
2017-02-16 11:58:10 -08:00
fanmin shi
65b59f4423
grpcproxy: incorporate lease proxy into existing proxy framework
2017-02-16 11:50:59 -08:00
Xiang
4274db46f2
clientv3: fix lease keepalive duration
2017-02-16 11:25:26 -08:00
Anthony Romano
2f8b9ce9aa
Merge pull request #7314 from heyitsanthony/fix-leadership
...
grpcproxy: split out / tighten up leadership detection
2017-02-15 07:01:38 -08:00
Anthony Romano
a4a8393cb7
integration: wait five elections before creating watch for require leader test
...
Otherwise new watch will race with the leader watcher receiving the loss event.
2017-02-15 00:16:25 -08:00
fanmin shi
8cb5e05fc9
clientv3: KeepAliveOnce returns ErrLeaseNotFound if TTL <= 0
2017-02-14 15:19:29 -08:00
Anthony Romano
43740a8d3c
Merge pull request #7318 from heyitsanthony/limit-doc
...
etcdserverpb, clientv3: clarify WithLimit documentation
2017-02-13 15:35:37 -08:00
Anthony Romano
fb7dd0f688
etcdserverpb, clientv3: clarify WithLimit documentation
...
Fixes #7316
2017-02-13 12:37:44 -08:00
fanmin shi
bcfbb096e2
clientv3/integration: test lease not found on TimeToLive()
2017-02-10 16:41:47 -08:00
fanmin shi
366e689eae
clientv3: uses direct client calls in integration tests
...
clientv3 integration test was using clientv3.NewKV, clientv3.NewWatcher, etc to create specific client.
replace those with direct client calls so that the direct calls can also test grpc proxy.
2017-02-07 11:09:19 -08:00
fanmin shi
c182428e52
clientv3/integration: stop member before keepalive in TestLeaseKeepAliveInitTimeout
2017-02-07 10:07:03 -08:00
Anthony Romano
cf5cc18f02
Merge pull request #7286 from heyitsanthony/lease-snip-cancel-stop
...
clientv3: remove cancelWhenStop from lease implementation
2017-02-07 09:12:34 -08:00
Anthony Romano
a213b3abf5
clientv3: remove cancelWhenStop from lease implementation
...
Only have Close() cancel out outstanding goroutines. Canceling out
single-shot RPCs will mask connection close on client.Close().
2017-02-06 17:21:46 -08:00
Anthony Romano
a9f10bdeee
clientv3: only start lease stream after first keepalive call
...
Fixes #7274
2017-02-06 11:52:57 -08:00
Xiang Li
6fb99a8585
Merge pull request #7276 from fanminshi/fix_lease_keep_alive_loop
...
clientv3: sends keepalive reqs immediately after lease keep alive stream reset
2017-02-04 21:28:56 -08:00
fanmin shi
720234d32b
clientv3: sends keepalive reqs immediately after lease keep alive stream reset
...
when lease client reset lease keep alive stream, sendKeepAliveLoop() should send out keep alive reqs immediately instead of waiting for 500ms.
2017-02-03 16:36:24 -08:00
Anthony Romano
8c43bd06a0
clientv3: add DialOptions to config
...
Removes strict prometheus dependency.
Fixes #7058
2017-02-03 12:00:20 -08:00
Anthony Romano
b465b48476
clientv3: remove strict yaml dependency
...
Moved to clientv3/yaml
2017-02-01 21:02:45 -08:00
Ravi Gadde
c586218ec6
clientv3: start a session with existing lease
...
This change is needed to handle process restarts with elections. When the
leader process is restarted, it should be able to hang on to the leadership
by using the existing lease.
Fixes #7166
2017-01-30 18:07:22 -08:00
fanmin shi
18af48a9dc
integration: add test case in dial_test to ensure balancer.updateAddrs works properly
2017-01-26 14:21:29 -08:00
fanmin shi
0c4e67c1f4
clientv3: fix balancer update address bug
2017-01-26 13:33:10 -08:00
Anthony Romano
56286ccd29
clientv3: use DialContext
...
Fixes #7216
2017-01-25 09:49:41 -08:00
Anthony Romano
a2c44a8b65
clientv3: test closing client cancels blocking dials
2017-01-25 09:49:41 -08:00
sharat
d3191d1afb
clientv3: add WithIgnoreLease option
2017-01-25 03:09:30 +05:30
Anthony Romano
8695511153
concurrency: STM snapshot isolation level
2017-01-20 16:22:43 -08:00
Anthony Romano
8604d1863b
concurrency: STM WithPrefetch option
...
Fixes #6923
2017-01-20 16:22:42 -08:00
Anthony Romano
a81234a25b
concurrency: extend STM interface to Get from any of a list of keys
...
Now possible to fetch multiple keys in a single txn.
2017-01-20 16:22:42 -08:00
Anthony Romano
59880a0ab8
concurrency: variadic stm options
...
Makes txn isolation and the context variadic options.
2017-01-20 16:22:42 -08:00
Derek Chiang
acec15ebc6
clientv3/concurrency: fix rev comparison on concurrent key deletion
2017-01-19 20:51:31 -08:00
Xiang Li
5cf0d6678b
Merge pull request #7174 from vimalk78/support-v3-txn-without-condition
...
clientv3/txn.go : removed the TODO: add a Do for shortcut the txn without any condition
2017-01-19 08:45:34 -08:00
Vimal Kumar
fcaa509e4c
clientv3/txn.go : removed the TODO: add a Do for shortcut the txn without any condition
2017-01-18 11:37:29 +05:30
fanmin shi
3a40421aa5
Merge pull request #7157 from fanminshi/clientv3_balancer_uses_one_connection
...
clientv3: balancer uses one connection at a time
2017-01-17 12:12:35 -08:00
fanmin shi
df55438a60
clientv3: balancer uses one connection at a time
...
FIX #7080
2017-01-17 10:09:41 -08:00
Steve Phillips
eb7a804ca8
kv.go: Fixed []byte to string conversion syntax in comment
2017-01-15 05:57:16 -08:00
Gyu-Ho Lee
d94d22122b
clientv3: add 'WithIgnoreValue' option
2017-01-13 15:13:18 -08:00
Anthony Romano
7dfe503f1c
Merge pull request #7148 from heyitsanthony/fix-lease-overlap
...
clientv3: don't reset stream on keepaliveonce or revoke failure
2017-01-13 10:05:02 -08:00
Anthony Romano
5e3b20e70c
clientv3: don't reset stream on keepaliveonce or revoke failure
...
Would cause the keepalive loop to cancel out.
Fixes #7082
2017-01-13 09:05:23 -08:00
Hitoshi Mitake
c89eae790d
Merge pull request #7110 from mitake/reauth
...
etcdserver, clientv3: handle a case of expired auth token
2017-01-13 11:57:25 +09:00
fanmin shi
6d443ba3f9
clienv3: fix balancer test logic
2017-01-12 13:07:44 -08:00
Hitoshi Mitake
d431b64d97
etcdserver, clientv3: handle a case of expired auth token
...
This commit adds a mechanism of handling a case of expired auth token
to clientv3. If a server returns an error code
grpc.codes.Unauthenticated, newRetryWrapper() tries to get a new token
and use it as an option of PerRPCCredential.
Fixes https://github.com/coreos/etcd/issues/7012
2017-01-12 11:49:02 +09:00
Anthony Romano
a375e91c66
clientv3: don't reset keepalive stream on grant failure
...
Was triggering cancelation errors on outstanding KeepAlives if Grant
had to retry.
2016-12-16 10:36:51 -08:00
Anthony Romano
46bd842db9
clientv3/integration: test lease grant/keepalive with/without failures
2016-12-16 10:36:51 -08:00
Xiang Li
86a43849fb
Merge pull request #7010 from dennwc/keepalive-exit-err
...
clientv3: ensure KeepAlive channel is closed or error is returned
2016-12-15 08:06:36 -08:00
Denys Smirnov
b126e31132
clientv3: better error message for keep alive loop halt
2016-12-15 16:06:27 +02:00
Denys Smirnov
5183ce0118
clientv3: add test for keep alive loop exit case
2016-12-15 03:02:44 +02:00
Denys Smirnov
e0bcd4d516
clientv3: return error from KeepAlive if corresponding loop exits
...
after recvKeepAliveLoop exits client might call KeepAlive adding request channel that will not be closed
this fix makes sure that recvKeepAliveLoop is running before adding request to lessor's list and returns error otherwise
Fixes #6922
2016-12-15 03:02:35 +02:00
Anthony Romano
246fb29d8a
clientv3: close Lease on client Close
...
Fixes #6987
2016-12-14 12:11:17 -08:00
Anthony Romano
fdd89df1eb
clientv3/integration: test lease keepalive works following quorum loss
2016-12-06 14:09:57 -08:00
Gyu-Ho Lee
a08103c088
clientv3: return copy of endpoints, not pointer
...
Fix https://github.com/coreos/etcd/issues/6892 .
2016-11-23 11:33:54 -08:00
fanmin shi
ab6b175a2a
Merge pull request #6828 from fanminshi/add_not_equal_to_compare
...
etcdserver, clientv3: add "!=" to txn
2016-11-09 15:27:08 -08:00
fanmin shi
c2fd42b556
etcdserver, clientv3: add "!=" to txn
...
adding != to compare is a requested functionality from a etcd user
FIX #6719
2016-11-09 14:28:36 -08:00
Kelvin Liang
c20d31adc5
clientv3/naming: support OpOption when adding an endpoint
...
if we want to add an endpoint with lease, we need this option.
for example:
resp, err := cli.Grant(context.TODO(), 5)
if err != nil {
log.Fatal(err)
}
err = r.Update(context.TODO(), serviceName, naming.Update{Op:naming.Add, Addr: exposedAddr}, clientv3.WithLease(resp.ID))
if err != nil {
log.Fatalf(err)
}
2016-11-09 15:30:17 -04:00
Gyu-Ho Lee
dbb692e50f
Merge pull request #6820 from gyuho/watcher
...
mvcc: return -1 for wrong watcher range key >= end
2016-11-08 17:36:19 -08:00
Gyu-Ho Lee
9dd75a946f
clientv3, ctlv3: document range end requirement
2016-11-08 17:02:32 -08:00
Gyu-Ho Lee
a93d8dfe62
Merge pull request #6821 from gyuho/manual
...
*: fix minor typos, styles
2016-11-08 15:39:26 -08:00
Gyu-Ho Lee
2955d58776
clientv3/integration: fix minor typos, consistent formatting
2016-11-08 12:37:33 -08:00
Anthony Romano
1aeeb38459
clientv3: let watchers cancel when reconnecting
2016-11-08 12:02:17 -08:00
Anthony Romano
7b5e5eadb1
integration: test canceling a watcher on disconnected stream
2016-11-08 12:02:17 -08:00
Anthony Romano
fe755b6250
Merge pull request #6748 from sinsharat/client_metric_add_tests
...
clientv3: added test for client metrics
2016-11-02 15:00:08 -07:00
sharat
195570b621
clientv3: updated doc for metric support
2016-11-03 03:22:59 +05:30
sinsharat
13acad85b3
clientv3: added test for client metrics
2016-11-03 00:38:29 +05:30
Gyu-Ho Lee
0684d8c4c6
clientv3/integration: close active connection to get ErrClientConnClosing
...
because clientv3.Close won't trigger it any more
clientv3.Close just closes watch client
instead of closing grpc connection
2016-11-01 11:13:33 -07:00
Gyu-Ho Lee
5bd00ab1f6
*: fix minor typos
2016-10-31 09:47:15 -07:00
Anthony Romano
0345226759
Merge pull request #6751 from heyitsanthony/fix-require-leader-test
...
integration: put key on watch target member for TestWatchWithRequireLeader
2016-10-28 23:24:00 -04:00
Anthony Romano
d8ea9d22b6
integration: put key on watch target member for TestWatchWithRequireLeader
...
It's possible the put will not propagate to all members before removing quorum,
causing watches on the key to wait forever.
Fixes #6386
2016-10-28 13:12:26 -04:00
sharat
a1bfb31219
clientv3: added example for client metrics
2016-10-28 04:30:17 +05:30
Xiang Li
89107a49fa
Merge pull request #6741 from sinsharat/clientv3_add_client_side_metrics
...
clientv3: added client side metrics support
2016-10-27 13:22:10 -07:00
Gyu-Ho Lee
0a3d45a307
clientv3: send create event over outc
2016-10-27 11:11:16 -07:00
sharat
8fd1dd7862
clientv3: added client side metrics support
2016-10-27 22:47:45 +05:30
Gyu-Ho Lee
8e5f34fd97
Merge pull request #6709 from yudai/error_url
...
clientv3: Fix URL to rpc errors
2016-10-24 18:52:46 -07:00
Iwasaki Yudai
e7e29ba249
clientv3: Fix URL to rpc errors
2016-10-24 16:38:05 -07:00
Xiang Li
77be124391
Merge pull request #6691 from xiang90/fix_retry
...
clientv3: do not retry on mutable operations
2016-10-24 10:32:34 -07:00
Anthony Romano
ae99c91903
Merge pull request #6698 from heyitsanthony/session-close
...
concurrency: terminate session.Close if revoke takes longer than TTL
2016-10-24 09:14:09 -07:00
Xiang Li
81f151eed2
clientv3: fix retry logic
...
1. Balancer should setup gRPC error code correctly for retry.
2. We should not mask context error.
2016-10-22 22:15:43 -07:00
Anthony Romano
f38a5d19a8
concurrency: add WithContext option to sessions
...
Makes it possible to cancel session requests without having to
close the entire client.
2016-10-21 16:26:59 -07:00
Anthony Romano
1e330a90c7
concurrency: terminate session.Close if revoke takes longer than TTL
...
Fixes #6681
2016-10-21 16:21:01 -07:00
Anthony Romano
8f3abda5b8
integration: account for unsynced server in TestWatchResumeCompacted
...
The watch's etcd server is shutdown to keep the watch in a retry state as
keys are put and compacted on the cluster. When the server restarts,
there is a window where the compact hasn't been applied which may cause
the watch to receive all events instead of only a compaction error.
Fixes #6535
2016-10-21 13:42:10 -07:00
Anthony Romano
c100e40715
clientv3: only receive from closing streams in Watcher close
...
Was overcounting the number of expected closing messages; the resuming
list may have nil entries. Also the full client wasn't closing the watcher
client, only canceling its context, so client closes weren't joining with
the watcher shutdown.
Fixes #6605
2016-10-20 15:33:11 -07:00
Anthony Romano
a66c25121b
integration: stress closing while resuming watchers
2016-10-20 15:33:11 -07:00
Xiang Li
9205a242b9
clientv3: do not retry on mutable operations
2016-10-20 10:48:10 -07:00
Gyu-Ho Lee
4de2128344
clientv3/integration: test missing sort order get
2016-10-18 16:29:22 -07:00
Iwasaki Yudai
6a33f0ffd5
clientv3: make balancer respect FastFail
...
The simpleBalancer.Get() blocks grpc.Invoke() even when the Invoke() is called
with the FailFast option. Therefore currently any requests with the
FastFail option actually doesn't fail fast. They get blocked when there is
no endpoints available.
Get() method needs to respect the BlockingWait option when
picks up an endpoint address from the list and fail immediately when the option is
enabled and no endpoint is available.
2016-10-17 14:11:51 -07:00
Anthony Romano
7d50dc06a2
clientv3/naming: support resolving to multiple hosts
...
Previous implementation watches a single key so there's no way
to have separate hosts associate with separate keys for a single
grpc target. Instead, accept all keys on a prefix.
Also fixes first the Next() to read current name data from etcd instead
of waiting for the next event on a synced watcher.
2016-10-12 11:27:22 -07:00
Gyu-Ho Lee
084c407a8d
clientv3: drop Config.Logger field
...
Fix https://github.com/coreos/etcd/issues/6603 .
Instead adds 'SetLogger' to set global logger interface
to avoid unnecessary logger updates.
2016-10-11 16:38:32 -07:00
Gyu-Ho Lee
4a07bbec59
clientv3: implement new grpc.Balancer interface
2016-10-10 11:18:29 -07:00
Geoff Levand
54c252ee63
clientv3/kv_test: Fix quota test
...
Updates TestKVPutError. Change the quota to work with systems
that have a 64 KiB page size. Increase the db sync wait time to
one second. Also, add some comments for the hard coded value.
Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
Anthony Romano
b980ab0c67
Merge pull request #6582 from heyitsanthony/fix-cancel-close
...
clientv3: only return closing error to watcher if context is not canceled
2016-10-05 13:37:29 -07:00
Anthony Romano
06d5cf2d52
clientv3: fix race on watch initial revision
...
The initial revision was being updated in the substream goroutine defer;
this was racing with the resume path fetching the initial revision when
the substream closes during resume. Instead, update the initial revision
whenever the substream processes a new watch response. Since the substream
cannot receive a watch response while it is resuming, the write to the
initial revision is ordered to always happen after the resume read.
Fixes #6586
2016-10-05 09:36:06 -07:00
Anthony Romano
e285f599e2
clientv3: only return closing error to watcher if context is not canceled
...
Fixes #6503
2016-10-04 16:09:50 -07:00
Anthony Romano
8e1c989ec3
integration: test a canceled watch won't return a closing error
2016-10-04 14:47:40 -07:00
Anthony Romano
5b50658118
clientv3: simplify watch synchronization
...
Was more complicated than it needed to be and didn't really work in the
first place. Restructured watcher registation to use a queue.
2016-10-03 16:56:14 -07:00
Anthony Romano
9ce398f8a6
integration: test canceling watchers when disconnected
2016-10-03 16:56:14 -07:00
Gyu-Ho Lee
29dd3cf5bd
Revert "clientv3/integration: add TestDialWithHTTPS"
...
This reverts commit a96a28d603
.
2016-10-03 13:05:08 -07:00
Gyu-Ho Lee
a96a28d603
clientv3/integration: add TestDialWithHTTPS
2016-10-03 02:16:07 -07:00
Gyu-Ho Lee
f45542394b
clientv3: handle 'https' scheme in endpoint
2016-10-03 01:03:28 -07:00
Anthony Romano
bf2581390d
clientv3: make IsProgressNotify() false on compact event and closed channel
...
Fixes #6549
2016-09-28 16:49:39 -07:00
Anthony Romano
27c500d8d0
Merge pull request #6487 from heyitsanthony/watch-stress
...
clientv3: process closed watcherStreams in watcherGrpcStream run loop
2016-09-21 13:55:25 -07:00
Anthony Romano
a32518006c
clientv3: process closed watcherStreams in watcherGrpcStream run loop
...
Was racing with Watch() when closing the grpc stream on no watchers.
Fixes #6476
2016-09-21 13:28:00 -07:00
Anthony Romano
deef16b376
integration: test client watchers with overlapped context cancels
2016-09-21 09:40:24 -07:00
Gyu-Ho Lee
cdb1e34799
clientv3: add 'Sync' method
2016-09-21 09:10:25 -07:00
Anthony Romano
69c7ea0b4a
Merge pull request #6473 from heyitsanthony/watchreconn-putretry
...
integration: l-read before Put in TestWatchReconnRequest
2016-09-19 14:52:26 -07:00
Anthony Romano
0fb2cab221
integration: l-read before Put in TestWatchReconnRequest
...
TestWatchReconnRequest occasionally triggers elections because it spins on
drop connections, eating up CPU. In case there's an election, submit an
l-read to wait for the cluster to settle down.
Fixes #6314
2016-09-19 14:14:32 -07:00
Gyu-Ho Lee
f11b35eb71
clientv3/integration: test 'SetEndpoints'
2016-09-20 04:36:14 +09:00
Gyu-Ho Lee
b9d18d4ac9
clientv3: add 'SetEndpoints' method
2016-09-20 04:36:01 +09:00
Anthony Romano
e77baa3dcb
Merge pull request #6424 from heyitsanthony/v3api-createminmax
...
etcdserver: range queries with min/max create revision
2016-09-14 19:10:52 -07:00
Xiang Li
059f419ac5
Merge pull request #6429 from xiang90/fix_balancer
...
clientv3: balancer panics when call up after close
2016-09-14 19:42:24 -05:00
Anthony Romano
9b1fe45853
concurrency: use create max revision for locks and elections
2016-09-14 17:03:33 -07:00
Xiang Li
004a5f0dbc
clientv3: balancer panics when call up after close
...
Fix the issue by adding a simple guard varable.
2016-09-15 07:43:42 +08:00
Anthony Romano
5bd251a6fa
clientv3: WithMinCreateRev, WithMaxCreateRev
2016-09-14 15:31:45 -07:00
Hitoshi Mitake
4211c0b7af
etcdctl, clientv3: improve printing of role get for prefix permission
...
This commit improves printing of role get command for prefix
permission. If a range permission corresponds to a prefix permission,
it is explicitly printed for a user. Below is an example of the new
printing:
$ ETCDCTL_API=3 bin/etcdctl --user root:p role get r1
Role r1
KV Read:
[/dir/, /dir0) (prefix /dir/)
[k1, k5)
KV Write:
[/dir/, /dir0) (prefix /dir/)
[k1, k5)
2016-09-14 16:10:32 +09:00
Xiang Li
e6a7f25065
Merge pull request #6411 from heyitsanthony/v3api-minmaxmod
...
etcdserver: Range with min/max mod revision
2016-09-13 05:54:58 -05:00
Xiang Li
56084a7cc8
clientv3: return error from response when possible
2016-09-13 11:18:21 +08:00
Anthony Romano
b0481ba858
clientv3: WithMinModRev and WithMaxModRev
2016-09-12 19:44:14 -07:00
Gyu-Ho Lee
03b9d6f24c
*: separate 'capnslog' log level setting
2016-09-10 20:26:51 +09:00
Gyu-Ho Lee
4c08f6767c
clientv3: add lease.TimeToLive + tests
2016-09-09 08:18:45 +09:00
Gyu-Ho Lee
1aec483e42
clientv3: use correct context in toErr (lease)
2016-09-08 10:58:11 +09:00
Anthony Romano
ad318ee891
clientv3: drain buffered WatchResponses before resuming
...
Otherwise, the watcherStream can receive WatchResponses in the
middle of a resume, corrupting the stream.
Fixes #6364
2016-09-06 17:15:39 -07:00
Hitoshi Mitake
bc5d7bbe03
auth, e2e, clientv3: the root role should be granted access to every key
...
This commit changes the semantics of the root role. The role should be
able to access to every key.
Partially fixes https://github.com/coreos/etcd/issues/6355
2016-09-06 16:10:28 +09:00
Anthony Romano
7b2f769643
clientv3: only resume watcher if error is non-halting
2016-09-01 15:22:35 -07:00
Jason E. Aten
9497e9678c
clientv3/concurrency: allow election on prefixes of keys.
...
After winning an election or obtaining a lock, we
auto-append a slash after the provided key prefix.
This avoids the previous deadlock due to waiting
on the wrong key.
Fixes #6278
2016-08-29 18:34:14 -07:00
Anthony Romano
5e963608b7
clientv3: do not treat Internal codes as halting
...
Fixes #6277
2016-08-28 20:20:22 -07:00
Anthony Romano
3552420dfd
clientv3: set failfast=false on read-only txns
2016-08-28 19:40:38 -07:00
Anthony Romano
a50c707050
clientv3/integration: wait for two request timeouts in txn tests
...
Read only txns and Get may timeout once if the leader is lost.
2016-08-26 10:04:10 -07:00
Anthony Romano
267063efd0
clientv3: use grpc codes to translate raw grpc errors
2016-08-26 09:22:09 -07:00
Xiang Li
f2b7c501cc
clientv3/integration: fix TestKVPutStoppedServerAndClose
2016-08-24 13:57:27 -07:00
Gyu-Ho Lee
be38c50567
clientv3: specify watch progress notify interval
...
For watch request
2016-08-22 15:44:59 -07:00
Anthony Romano
8d7703528a
Merge pull request #5845 from heyitsanthony/clientv3-ignore-dead-eps
...
clientv3: respect up/down notifications from grpc
2016-08-16 11:56:03 -07:00
Anthony Romano
3eadf964f4
clientv3: use failfast and retry wrappers for at-most-once rpcs
2016-08-16 10:49:50 -07:00
Anthony Romano
46765ad79c
clientv3: respect up/down notifications from grpc
...
Fixes #5842
2016-08-16 09:49:36 -07:00
Xiang Li
feaff17259
session: remove session manager and add ttl
2016-08-15 14:12:25 -07:00
Anthony Romano
429d5ab20b
clientv3: only block on New() when DialTimeout > 0
...
Fixes #6162
2016-08-12 10:33:11 -07:00
Gyu-Ho Lee
1644679d00
clientv3: add 'ExampleConfig_withTLS'
2016-08-10 14:37:34 -07:00
Anthony Romano
1c83a46c6d
clientv3: handle watchGrpcStream shutdown if prior to goroutine start
...
Fixes #6141
2016-08-09 19:59:04 -07:00
Anthony Romano
8c1c291332
clientv3/integration: test watcher cancelation propagation to server
2016-08-09 00:10:57 -07:00
Anthony Romano
5e651a0d0d
clientv3: close watcher stream once all watchers detach
...
Fixes #6134
2016-08-09 00:10:57 -07:00
Gyu-Ho Lee
ddddecc3ab
clientv3: ignore sort-ascend-key option
2016-08-04 11:13:41 -07:00
Xiang Li
57c68ab1db
grpcproxy: handle create event
2016-08-02 20:51:30 -07:00
Xiang Li
33c3583b50
clientv3: add send created notification
2016-08-02 20:08:11 -07:00
Anthony Romano
4c9a2a65c9
integration: test clientv3 watch filters
2016-07-27 21:25:06 -07:00
Anthony Romano
943fe70178
clientv3: support watch filters
2016-07-27 21:24:52 -07:00
Anthony Romano
ac96963003
clientv3: support creating a Watch from a WatchClient
2016-07-25 09:34:36 -07:00
Anthony Romano
e001848270
Merge pull request #5772 from heyitsanthony/integration-proxy
...
integration: build tag for proxy
2016-07-20 16:28:12 -07:00
Anthony Romano
17e0164f57
clientv3: add KV constructor using pb.KVClient
2016-07-20 15:40:33 -07:00
Anthony Romano
8c8742f43c
integration: change timeouts for TestWatchWithProgressNotify
...
a) 2 * progress interval was passing with dropped notifies
b) waitResponse was waiting so long that it expected a dropped notify
2016-07-20 13:23:44 -07:00
Anthony Romano
8abae076d1
rpctypes, clientv3: retry RPC on EtcdStopped
...
Fixes #5983
2016-07-19 18:29:12 -07:00
Xiang Li
e177d9eda2
clientv3/integration: fix race in TestWatchCompactRevision
2016-07-19 09:31:44 -07:00
Anthony Romano
27a30768e1
integration: drain keepalives in TestLeaseKeepAliveCloseAfterDisconnectRevoke
...
Fixes #5900
2016-07-18 19:45:59 -07:00
Anthony Romano
984badeb03
testutil, clientv3: wait for panics in txn tests to complete
...
Fixes #5901
2016-07-18 09:37:33 -07:00
Anthony Romano
d8f0ef0e80
clientv3: use grpc.FailFast(false) for all calls
2016-07-14 17:58:58 -07:00
Anthony Romano
dc2dced129
Merge pull request #5892 from heyitsanthony/auth-cheap-bcrypt
...
auth: cheap bcrypt for tests
2016-07-07 09:04:57 -07:00
Anthony Romano
0b0cbaac09
clientv3: use cheap bcrypt for ExampleAuth and use embedded auth api
...
Fixes #5783
2016-07-06 23:35:14 -07:00
westhood
16b0c1d1e1
clientv3: fix sync base
...
It is not correct to use WithPrefix. Range end will change in every
internal batch.
2016-07-07 12:02:53 +08:00
westhood
88a9cf2cea
clientv3: add public function to get prefix range end
2016-07-07 10:35:40 +08:00
Xiang Li
7ec822107a
*: add put prevkv
2016-07-05 20:45:01 -07:00
Xiang Li
12bf1a3382
*: rename preserveKVs to prevKv
2016-07-05 20:45:01 -07:00
Xiang Li
c853704ac9
*: support get-old-kv in watch
2016-07-05 16:17:09 -07:00
Xiang Li
c8c5f41a01
Merge pull request #5836 from xiang90/better_d_prev
...
*: support return prev deleted kv
2016-07-01 14:43:33 -07:00
Xiang Li
40c4a7894d
*: support return prev deleted kv
2016-07-01 14:01:48 -07:00
davygeek
8c96d2573f
*: fixed some warning
2016-06-30 23:13:46 +08:00
Xiang Li
4f57bb313f
clientv3: add grpc naming resolver
2016-06-28 17:06:58 -07:00
Anthony Romano
1db4ee8c61
clientv3: only use closeErr on watch when donec is closed
...
Fixes #5800
2016-06-28 16:14:09 -07:00
Anthony Romano
1c25aa6c48
clientv3, ctl3, clientv3/integration: add compact response to compact
2016-06-28 09:32:31 -07:00
Gyu-Ho Lee
76e2bf03b8
etcdctl: v3 compact with physical flag
2016-06-27 12:07:46 -07:00
Gyu-Ho Lee
859e336d68
clientv3: configurable physical in compact
2016-06-27 12:04:04 -07:00
Gyu-Ho Lee
2da5bdd4df
clientv3: add auth example
2016-06-22 20:06:13 -07:00
James Shubin
6480066054
*: misc typos and go vet fixes
2016-06-22 10:32:13 -07:00
Xiang Li
6496ae005d
clientv3: add withCount support
2016-06-21 21:17:35 -07:00
Anthony Romano
1097d63ff7
clientv3/integration: test WithRequireLeader on Watch
2016-06-20 14:26:16 -07:00
Anthony Romano
722f5b2a8c
clientv3: watch with arbitrary ctx values
...
Sets up a new watch stream for every unique set of ctx values.
Fixes #5354
2016-06-20 12:44:51 -07:00
Ajit Yagaty
ad5d55dd4c
v3api: Add a flag to RangeRequest to return only the keys.
...
Currently the user can't list only the keys in a prefix search. In
order to support such operations the filtering will be done on the
server side to reduce the encoding and network transfer costs.
2016-06-19 14:18:39 -07:00
Hitoshi Mitake
18253e2723
*: support getting all users and roles in auth v3
...
This commit expands RPCs for getting user and role and support list up
all users and roles. etcdctl v3 is now support getting all users and
roles with the newly added option --all e.g. etcdctl user get --all
2016-06-17 16:22:41 +09:00
Gyu-Ho Lee
5225a4e4bc
clientv3: fix client for grpc change
...
Fix https://github.com/coreos/etcd/issues/5638 .
2016-06-10 20:40:46 -07:00
Anthony Romano
a7c5058953
Merge pull request #5608 from heyitsanthony/clientv3-auth-opts
...
clientv3: use separate dialopts for auth dial
2016-06-09 12:56:59 -07:00
Anthony Romano
349eaf117a
clientv3: use separate dialopts for auth dial
...
Needs to use a different balancer from the main client connection
because of the way grpc uses the Notify channel.
2016-06-09 10:38:57 -07:00
Anthony Romano
78c957df41
Merge pull request #5603 from heyitsanthony/clientv3-close-keepalive
...
clientv3: close keepalive channel if TTL locally exceeded
2016-06-09 09:44:32 -07:00
Anthony Romano
0554ef9c39
clientv3/integration: tests for closing lease channel
2016-06-09 09:12:59 -07:00
Anthony Romano
e534532523
clientv3: close keep alive channel if no response within TTL
2016-06-09 09:12:59 -07:00
Gyu-Ho Lee
a548cab828
Merge pull request #5602 from gyuho/get_leader
...
clientv3/integration: WaitLeader to follower
2016-06-08 17:03:25 -07:00
Gyu-Ho Lee
753073198f
clientv3/integration: WaitLeader to follower
...
Fix https://github.com/coreos/etcd/issues/5601 .
2016-06-08 16:45:32 -07:00
Hitoshi Mitake
253e313c09
*: support granting and revoking range
...
This commit adds a feature for granting and revoking range of keys,
not a single key.
Example:
$ ETCDCTL_API=3 bin/etcdctl role grant r1 readwrite k1 k3
Role r1 updated
$ ETCDCTL_API=3 bin/etcdctl role get r1
Role r1
KV Read:
[a, b)
[k1, k3)
[k2, k4)
KV Write:
[a, b)
[k1, k3)
[k2, k4)
$ ETCDCTL_API=3 bin/etcdctl --user u1:p get k1 k4
k1
v1
$ ETCDCTL_API=3 bin/etcdctl --user u1:p get k1 k5
Error: etcdserver: permission denied
2016-06-08 14:58:25 -07:00
Anthony Romano
4a13c9f9b3
clientv3: use grpc balancer
2016-06-08 09:24:13 -07:00
Anthony Romano
62f8ec25c0
clientv3: use grpc reconnection logic
2016-06-08 01:04:59 -07:00
Gyu-Ho Lee
1e4d3603db
clientv3,ctlv3: following changes for proto change
2016-06-07 13:32:36 -07:00
Xiang Li
83ce1051ff
auth: make naming consistent
2016-06-07 10:54:50 -07:00
Hitoshi Mitake
94f22e8a07
*: rename RPCs and structs related to revoking
...
This commit renames RPCs and structs related to revoking.
1. UserRevoke -> UserRevokeRole
2. RoleRevoke -> RoleRevokePermission
2016-06-05 16:57:23 +09:00
Xiang Li
429b2eee58
Merge pull request #5548 from mitake/auth-v3-revoke-delete
...
revoke user, revoke role, and delete role in auth v3
2016-06-03 21:44:37 -07:00
Hitoshi Mitake
c7a1423d45
*: support deleting a role in auth v3
...
This commit implements RoleDelete() RPC for supporting deleting a role
in auth v3. It also adds a new subcommand "role delete" to etcdctl.
2016-06-04 13:42:45 +09:00
Hitoshi Mitake
0cb1343109
*: support revoking a key from a role in auth v3
...
This commit implements RoleRevoke() RPC for supporting revoking a key
from a role in auth v3. It also adds a new subcommand "role revoke" to
etcdctl.
2016-06-04 13:42:45 +09:00
Hitoshi Mitake
957b07c408
*: support revoking a role from a user in auth v3
...
This commit implements UserRevoke() RPC for supporting revoking a role
from a user in auth v3. It also adds a new subcommand "user revoke" to
etcdctl.
2016-06-04 13:39:26 +09:00
Gyu-Ho Lee
0cb4dd4331
clientv3/integration: test lease closed connection
...
Tests if lease operations return ErrConnClosed when
the client is closed.
2016-06-03 16:41:32 -07:00
Anthony Romano
7dfe7db243
clientv3: panic if ActiveConnection tries to return non-nil connection
2016-06-03 10:25:20 -07:00
Anthony Romano
267d1cb16f
clientv3: fix watch to reconnect on failure
...
It was spinning before.
2016-06-03 10:25:20 -07:00
Anthony Romano
5f5a203e27
clientv3: don't hold client lock while dialing
...
Causes async reconnect to block while the client is dialing.
This was also causing problems with the Close error message, so
now Close() will return the last dial error (if any) instead of
clearing it out with a cancel().
Fixes #5416
2016-06-03 10:25:20 -07:00
Hitoshi Mitake
10ee69b44c
*: support getting role in auth v3
...
This commit implements RoleGet() RPC of etcdserver and adds a new
subcommand "role get" to etcdctl v3. It will list up permissions that
are granted to a given role.
$ ETCDCTL_API=3 bin/etcdctl role get r1
Role r1
KV Read:
b
d
KV Write:
a
c
d
2016-06-03 13:03:54 +09:00
Anthony Romano
84a487f723
Revert "etcdserverpb: make RangeResponse.More an int64"
...
This reverts commit 84e1ab8765
.
2016-06-02 13:43:40 -07:00
Hitoshi Mitake
5609fdb9a8
*: support getting user in etcdctl v3
...
This commit adds a new subcommand "user get" to etcdctl v3. It will
list up roles that are granted to a given user.
Example:
$ ETCDCTL_API=3 bin/etcdctl user get u1
User: u1
Roles: r1 r2 r3
This commit also modifies the layout of InternalRaftRequest for
frequent update of auth related members.
2016-06-02 12:10:19 +09:00
Anthony Romano
b95c5b7da9
Merge pull request #5526 from heyitsanthony/more-to-int64
...
etcdserverpb: make RangeResponse.More an int64
2016-06-01 20:03:15 -07:00
Anthony Romano
84e1ab8765
etcdserverpb: make RangeResponse.More an int64
2016-06-01 17:10:23 -07:00
Anthony Romano
fb64c8ccfe
Merge pull request #5521 from heyitsanthony/clientv3-hide-retrydial
...
clientv3: hide retry dial api
2016-06-01 13:00:02 -07:00
Anthony Romano
22744566f4
clientv3: hide retry dial api
2016-06-01 11:36:16 -07:00
Gyu-Ho Lee
75dc10574a
clientv3: watch resp with error when client close
2016-06-01 10:39:48 -07:00
Xiang Li
9ed3b446ca
Merge pull request #5509 from heyitsanthony/clientv3-fix-concurrent-close
...
clientv3: fix deadlock on Get with concurrent Close
2016-06-01 07:37:28 -07:00
Anthony Romano
a83051d0fc
clientv3: don't panic on Get if NewKV is created with a closed client
2016-06-01 05:53:21 -07:00
Anthony Romano
1d88130522
clientv3: fix deadlock on Get with concurrent Close
2016-06-01 05:53:21 -07:00
Anthony Romano
51551abef5
concurrency, benchmark: read-committed STM isolation policy
2016-05-31 14:35:27 -07:00
Gyu-Ho Lee
7b5657cf1a
clientv3: check if KV.Client is closed
...
For https://github.com/coreos/etcd/issues/5495 .
2016-05-31 12:00:19 -07:00
Gyu-Ho Lee
d116c116fe
clientv3: getRemote comment about release
2016-05-31 12:00:19 -07:00
Gyu-Ho Lee
9a0fe2620e
clientv3: fix panic message in OpPut
2016-05-28 11:55:28 -07:00
Anthony Romano
9dc0782f45
clientv3: handle URL scheme when given in endpoint
...
Fixes #5427
2016-05-25 18:01:36 -06:00
James Shubin
374b3ee40b
clientv3: fix typo
2016-05-20 17:18:52 -04:00
James Shubin
edca3cbe44
clientv3: Fix typos
...
Found randomly when going through docs. HTH
2016-05-20 14:06:29 -04:00
Gyu-Ho Lee
fa1e40c120
clientv3/concurrency: preallocate slice in stm
2016-05-19 14:42:19 -07:00
Gyu-Ho Lee
f9306fb817
clientv3: preallocate watch streams slice
...
To avoid slice growth when appending
2016-05-19 12:55:55 -07:00
Anthony Romano
e4a2dcad9e
clientv3/integration: ignore closing transport in TestKVPutStoppedServerAndClose
...
The grpc "transport is closing" error is rasied when the host is unreachable;
there's no good way to avoid it for a Put.
Fixes #5343
2016-05-18 14:49:39 -07:00
Anthony Romano
782a8802c0
clientv3: avoid reusing closed connection in KV
2016-05-18 14:46:17 -07:00
Gyu-Ho Lee
86c85b88ad
Merge pull request #5377 from purpleidea/bug/typos
...
clientv3: fix typos
2016-05-17 12:51:13 -07:00
James Shubin
42f3b4964f
clientv3: fix typos
2016-05-17 15:39:56 -04:00
Hitoshi Mitake
6259318521
*: attach auth token as a gRPC credential
...
This commit adds a functionality of attaching an auth token to gRPC
connection as a per RPC credential.
For doing this, this commit lets clientv3.Client.Dial() create a
dedicated gRPC connection for doing authentication. With the dedicated
connection, the client calls Authenticate() RPC and obtain its
token. The token is attached to the main gRPC connection with
grpc.WithPerRPCCredentials().
This commit also adds a new option --username to etcdctl (v3). With
this option, etcdctl attaches its auth token to the main gRPC
connection (currently it is not used at all).
2016-05-17 13:26:12 +09:00
Anthony Romano
e8101ddf09
clientv3: throttle reconnection rate
...
Client was reconnecting after establishing connections because the lease
and watch APIs were thrashing. Instead, wait a little before accepting
new reconnect requests.
2016-05-16 11:14:45 -07:00
Xiang Li
ec2ac72585
proxy: initial grpc kv service proxy
2016-05-13 23:00:29 -07:00
Xiang Li
c7c0e1eb7a
integration: remove parallel testing
...
We cannot do testing in parallel since leak testing will detect the goroutines
in other tests running in parallel.
2016-05-13 12:01:25 -07:00
Anthony Romano
120020fa9c
clientv3/concurrency: use session id for election keys to avoid deadlock
2016-05-13 10:07:35 -07:00