Wojciech Tyczynski
53bc644168
client: regenerate code to unmarshal key response
...
Regenerate code for unmarshaling key response with a new version of
ugorji/go/codec.
2015-11-19 13:26:19 -08:00
Wojciech Tyczynski
0169fec873
client: regenerate code to unmarshal key response
...
Regenerate code for unmarshaling key response with a new version of
ugorji/go/codec
2015-10-15 15:24:21 -07:00
Yicheng Qin
3ceb5dd270
client: add Nodes to codecgen and regenerate
2015-10-15 15:19:58 -07:00
Yicheng Qin
49b77a59cf
client: add Nodes type to faciliate sorting
...
This helps users to sort easily.
2015-10-15 15:19:52 -07:00
Yicheng Qin
d412eaa3a2
Merge pull request #3308 from yichengq/go-codec
...
Use ugorji codec for unmarshalling key responses in client
2015-09-01 14:04:38 -07:00
Yicheng Qin
27b9963959
client: always cancel in-flight request when do request
...
This fits the way for go1.5 to cancel request.
2015-08-25 09:04:58 -07:00
Xiang Li
6b23a8131f
*: test gofmt with -s and fix reported issues
2015-08-21 18:52:16 -07:00
Xiang Li
1dcc145aef
client: fix test
2015-08-21 14:36:29 -07:00
Steve Phillips
952827157a
client: fixed typo in WatcherOptions docs
...
specifices -> specifies
2015-08-18 16:43:09 -07:00
Steve Phillips
69fc796926
client: spelling error in docs (occured -> occurred)
2015-08-18 16:26:52 -07:00
Yicheng Qin
087061e434
Merge pull request #3303 from yichengq/auth-path
...
use canonical path for auth
2015-08-18 12:06:48 -07:00
Yicheng Qin
b5ec7f543a
client: use canonical url path in request
...
The main change is that it keeps the trailing slash. This helps
auth feature to judge path permission accurately.
2015-08-18 08:59:48 -07:00
Xiang Li
87f061bab2
*: key handler should write auth error as etcd error
2015-08-17 14:45:45 -07:00
Yicheng Qin
7083828ae3
Godeps: import github.com/ugorji/go/codec
2015-08-16 18:13:44 -07:00
Yicheng Qin
a364af72af
client: use ugorij/go/codec to unmarshal key response
...
This change speeds up response unmarshal ~2x:
```
BenchmarkSmallResponseUnmarshal 20000 75243 ns/op
BenchmarkManySmallResponseUnmarshal 200 6629661 ns/op
BenchmarkMediumResponseUnmarshal 1000 1359041 ns/op
BenchmarkLargeResponseUnmarshal 20 61600978 ns/op
```
2015-08-16 18:08:54 -07:00
Yicheng Qin
95d100e957
client: add response unmarshal benchmark
...
The benchmark result:
```
BenchmarkSmallResponseUnmarshal 10000 164524 ns/op
BenchmarkManySmallResponseUnmarshal 100 13916636 ns/op
BenchmarkMediumResponseUnmarshal 1000 1974295 ns/op
BenchmarkLargeResponseUnmarshal 20 80462001 ns/op
ok github.com/coreos/etcd/client 7.777s
```
2015-08-16 16:44:50 -07:00
Yicheng Qin
5eed141d54
client: fix clusterError typo in README
...
It helps users to use client better.
2015-08-13 16:38:41 -07:00
Xiang Li
5d06d4ec44
client: print url as string
2015-08-12 10:09:40 -07:00
Yicheng Qin
7d618c46ad
client: clean up README
...
Address rob's comments about sentences in README.
2015-08-11 15:33:56 -07:00
Yicheng Qin
dceacacd49
Merge pull request #3194 from yichengq/client-readme
...
client: add README
2015-08-11 13:35:54 -07:00
Yicheng Qin
8a7cf56e13
client: add README
...
It describes some basic usage and caveat of etcd/client package.
Write it together with Xiang.
2015-08-11 12:07:24 -07:00
Yicheng Qin
a1ef699aeb
client: return context.DeadlineExceeded instead of ClusterError
...
This is done to match user expectation to see context.DeadlineExceeded
when it reaches deadline.
2015-08-11 10:18:38 -07:00
Yicheng Qin
f4c29a5f55
client: support to set timeout for each request
...
Add HeaderTimeout field in Config, so users could set timeout for each request.
Before this, one hanged request may block the call for long time. After
this, if the network is good, the user could set short timeout and expect
that API call can attempt next available endpoint quickly.
2015-08-11 10:01:05 -07:00
Yicheng Qin
0ab16db728
client: Sync() pin the endpoint when member list doesn't change
...
This helps client to pin the same endpoint as long as cluster doesn't change.
2015-08-07 10:08:28 -07:00
Xiang Li
b9c6b64d61
Merge pull request #3216 from yichengq/cancel-err
...
client: return context canceled error correctly
2015-08-06 15:04:49 -07:00
Yicheng Qin
78af793338
client: return context canceled error correctly
...
If the body is closed to stop watching, it will ignore the error from
reading body and return context error.
Before this PR, the cancel when watching always returns error `read tcp
127.0.0.1:57824: use of closed network connection`. After this PR, it
will return expected context canceled error.
2015-08-06 14:52:04 -07:00
Xiang Li
b04bb3e0ea
Merge pull request #3229 from xiang90/f_cerr
...
client: return context.Canceled error when user cancels the request
2015-08-06 14:41:19 -07:00
Yicheng Qin
25ad71fbac
Merge pull request #3225 from yichengq/client-record-err
...
client: return correct error for 50x response
2015-08-06 14:40:38 -07:00
Yicheng Qin
cfeaf3d172
client: return correct error for 50x response
...
etcd always returns 500/503 response when it may have no leader.
So we should log the other 50x response in a normal way.
This helps to log correctly when discovery meets 504 error. Before this
PR, it logs like this:
```
18:31:58 etcd2 | 2015/08/4 18:31:58 discovery: error #0 : client: etcd
member https://discovery.etcd.io has no leader
18:31:58 etcd2 | 2015/08/4 18:31:58 discovery: waiting for other nodes:
error connecting to https://discovery.etcd.io , retrying in 4s
```
After this PR:
```
22:20:25 etcd2 | 2015/08/4 22:20:25 discovery: error #0 : client: etcd
member https://discovery.etcd.io returns server error [Gateway Timeout]
22:20:25 etcd2 | 2015/08/4 22:20:25 discovery: waiting for other nodes:
error connecting to https://discovery.etcd.io , retrying in 4s
```
2015-08-06 14:25:03 -07:00
Xiang Li
9a8607fce1
Merge pull request #3187 from yichengq/client-keep-sync
...
client: add KeepSync function
2015-08-06 00:16:28 -07:00
Yicheng Qin
c53b3016ae
client: add AutoSync function
...
AutoSync provides the way for client to syncing member list from
etcd cluster automatically.
2015-08-05 13:22:56 -07:00
Xiang Li
f38187bbdb
client: return context.Canceled error when user cancels the request
2015-08-05 09:52:30 -07:00
Eugene Yakubovich
6312e22b1d
client: handle empty watch responses elegantly
...
Even though current etcd does not time out
watches, the client could be running against
an old etcd version or the server may close
polling connection for other reasons.
This patch ignores successful (as in 200)
responses with emtpy bodies instead
of producing JSON errors.
2015-08-03 11:47:21 -07:00
Xiang Li
a47e661fff
discovery: print out detailed cluster error
2015-07-29 23:06:57 +08:00
Xiang Li
5fa8652241
client: return cluster error if the etcd cluster is not avaliable
...
Add a new ClusterError type. It contians all encountered errors and
return ClusterNotAvailable as the error string.
2015-07-29 22:55:15 +08:00
Yicheng Qin
6184e271a4
Merge pull request #3164 from yichengq/pin-endpoint
...
client: pin itself to an endpoint that given
2015-07-27 14:35:51 -07:00
Yicheng Qin
ea2347a40f
client: pin itself to an endpoint that given
...
1. When reset endpoints, client will choose a random endpoint to pin.
2. If the pinned endpoint is healthy, client will keep using it.
3. If the pinned endpoint becomes unhealthy, client will attempt other
endpoints and update its pin.
2015-07-27 13:36:53 -07:00
Yicheng Qin
b20b87893f
client: add Quorum option in getOption
2015-07-22 15:19:34 -07:00
Xiang Li
d2dac0fe59
client: consume json error and return ErrInvaildJSON
...
The default JSON error is not very readable. We let client
consume the error and return a more understandable error in
the context of etcd.
Fix #3120
2015-07-21 12:53:21 -07:00
Xiang Li
6e3769d39e
client: add member update
2015-07-21 12:53:20 -07:00
Xiang Li
e3fcc450cf
etcdctl: make rm use etcd/client
2015-07-21 12:53:19 -07:00
Yicheng Qin
cf050ee21d
Merge pull request #2943 from yichengq/fix-client-test
...
client: fix TestSimpleHTTPClientDoCancelContextResponseBodyClosed
2015-06-23 13:43:07 -07:00
Yicheng Qin
7716bdf981
client: fix TestSimpleHTTPClientDoCancelContextResponseBodyClosed
...
This fixes the bug that the test may hang forever because RoundTrip is
blocked. fixes #2449
2015-06-16 11:29:54 -07:00
Barak Michener
64ec8af91b
*: Rename security
to auth
2015-06-15 18:18:50 -04:00
Barak Michener
a4d1a5a6e5
*: Add security/auth support to etcdctl and etcd/client
...
add godep for speakeasy and auth entry parsing
add security_user to client
add role to client
add role commands
add auth support to etcdclient and etcdctl(member/user)
add enable/disable to etcdctl
better error messages, read/write/readwrite
Bump go-etcd to include codec changes, add new dependency
verify the error for revoke/add if nothing changed, remove security-merging prefix
2015-06-10 16:58:10 -04:00
Xiang Li
15ac4f08f8
client: fix cancel watch
...
ioutil.ReadAll is a blocking call, we need to wait cancelation
during the call.
2015-06-05 15:40:43 -07:00
Xiang Li
4f2df84a38
client: support printing cURL command
2015-06-03 10:02:37 -07:00
Chance Zibolski
48e144ae2e
client: Support creating directory through KeysAPI
...
Creating a directory is done using the Set() method and a SetOptions
struct with it's Dir field set to true.
2015-05-07 10:47:18 -07:00
Brian Waldon
ee9e336fd4
client: add Node.TTLDuration()
2015-05-05 15:03:24 -07:00
Yicheng Qin
39dae50e71
client: fix test name typo
...
This is introduced at d89a862
2015-04-24 18:05:18 -07:00