Gyu-Ho Lee
ec1fdd3938
integration: test with new server errors
2016-04-29 12:00:26 -07:00
Gyu-Ho Lee
bef5be42b5
integration: add quota backend bytes option
2016-04-28 12:15:31 -07:00
Anthony Romano
11ec94b7e8
Merge pull request #5218 from heyitsanthony/fix-issue-3699
...
integration: wait for ReadyNotify in Issue3699 test
2016-04-28 10:48:08 -07:00
Anthony Romano
7c666b533a
Merge pull request #5221 from heyitsanthony/parallel-e2e-integration
...
test: run e2e and integration tests in parallel
2016-04-28 10:30:40 -07:00
Anthony Romano
85edd66c65
test: run e2e and integration tests in parallel
2016-04-28 10:17:40 -07:00
Xiang Li
6ee5f9c677
etcdserver: add timeout for processing v3 request
2016-04-28 08:52:17 -07:00
Anthony Romano
d814e9dc35
integration: wait for ReadyNotify in Issue3699 test
...
Fixes #5147
2016-04-27 22:04:07 -07:00
Xiang Li
434f2c356d
etcdserver: do not serve requests before finish the first internal proposal
2016-04-27 15:46:31 -07:00
Anthony Romano
22797c7185
clientv3/concurrency: use session lease id for mutex keys
...
With randomized keys, if the connection goes down, but the session remains,
the client would need complicated recovery logic to avoid deadlock.
Instead, bind the session's lease id to the lock entry; if a session tries
to reacquire the lock it will reassume its old place in the wait list.
2016-04-26 17:37:26 -07:00
Anthony Romano
b7ac758969
*: rename storage package to mvcc
2016-04-25 15:25:51 -07:00
Anthony Romano
2927c90fae
integration: wait for alarm in TestV3StorageQuotaApply
...
Fixes #4974
2016-04-21 20:53:43 -07:00
Anthony Romano
d72bcdc156
storage: have Range on rev=0 work even if compacted to current revision
2016-04-13 21:00:35 -07:00
Gyu-Ho Lee
89f8e66682
*: fixes based on ineffassign
2016-04-13 10:41:58 -07:00
Anthony Romano
c5b8e8dc88
etcdserver: set txn header revision to store revision following txn
2016-04-11 17:03:05 -07:00
Gyu-Ho Lee
9108af9046
*: clean up from go vet, misspell
2016-04-10 23:16:56 -07:00
Anthony Romano
dc17eaace7
*: rename Lease Create to Grant
...
Creating a lease through the client API interface union looked like
"c.Create(...)"-- the method name wasn't very descriptive.
2016-04-07 12:28:14 -07:00
Xiang Li
21096bf27f
Merge pull request #4963 from xiang90/ht
...
*: mv etcdhttp into api pkg
2016-04-04 18:40:29 -07:00
Hitoshi Mitake
88306c9fa7
etcdserver, clientv3: let progressReportIntervalMilliseconds be private
...
progressReportIntervalMilliseconds (old
ProgressReportIntervalMilliseconds) is accessed by multiple goroutines
and it is reported as race.
For avoiding this report, this commit wraps the variable with
functions. They access the variable with atomic operations so the race
won't be reported.
2016-04-05 09:12:17 +09:00
Xiang Li
2c50eb240e
*: mv etcdhttp into api pkg
2016-04-04 16:31:35 -07:00
Gyu-Ho Lee
b0cc0e443c
*: clean up if, bool comparison
2016-04-02 12:55:11 -07:00
Anthony Romano
9b2c963179
etcdserver: configurable backend size quota
...
Configurable with the flag --experimental-quota-backend-bytes and
through ServerConfig.QuotaBackendBytes.
Fixes #4894
2016-03-29 18:39:25 -07:00
Anthony Romano
d533c14881
Merge pull request #4876 from heyitsanthony/integration-races
...
*: fix races from clientv3/integration tests
2016-03-29 09:10:53 -07:00
Anthony Romano
3fbacf4be2
v3rpc: move Hash RPC to Maintenance service
2016-03-28 17:15:58 -07:00
Anthony Romano
91dc6b29a6
clientv3/integration: fix race when setting progress report interval
2016-03-28 16:08:18 -07:00
Anthony Romano
6e3a0948e4
Merge pull request #4868 from heyitsanthony/api-quota
...
etcdserver: storage quotas
2016-03-28 15:15:57 -07:00
Anthony Romano
a403a94d7b
etcdserver: cap new keys on space alarm
2016-03-28 14:56:26 -07:00
Anthony Romano
9c8253c543
etcdserver, v3rpc: space quotas
2016-03-28 14:56:26 -07:00
Anthony Romano
384c3ec907
integration: don't call rand.Intn in TestSTMConflict on 0
...
Fixes #4874
2016-03-28 13:06:07 -07:00
Xiang Li
70a9391378
*: enable v3 by default
2016-03-23 17:01:36 -07:00
Xiang Li
900a61b023
*: http and https on the same port
2016-03-23 10:28:38 -07:00
Anthony Romano
bd832e5b0a
*: migrate Godeps to vendor/
2016-03-22 17:10:28 -07:00
Gyu-Ho Lee
dae7e009b0
*: godoc clean up
2016-03-19 14:19:23 -07:00
Anthony Romano
58c8521920
Merge pull request #4792 from heyitsanthony/snip-snip
...
clientv3: break etcdserver dependency
2016-03-17 12:24:54 -07:00
Anthony Romano
44753594ec
v3rpc: move errors to v3rpc/rpctypes
...
Fixes #4771
2016-03-17 11:52:34 -07:00
Xiang Li
e6c39108a7
integration: add TestV3LeaseFailover test
2016-03-17 10:17:51 -07:00
Anthony Romano
bc37a32062
clientv3/concurrency: software transactional memory
...
Repeatable read and serialized read STM implementations.
2016-03-16 11:23:06 -07:00
Xiang Li
39d307572e
integration: fix TestV3WatchFutureRevision
...
Fix https://github.com/coreos/etcd/issues/4730 .
Previously we put keys async and there might be a race when
the watch triggers before the put receives the response. When that
happens, put might fails to get the response since we shutdown the server
when watch triggers.
2016-03-09 09:55:52 -08:00
Anthony Romano
78132c9b5b
clientv3: use tls.Config in clientv3.Config
...
Fixes #4648
2016-03-07 16:08:40 -08:00
Anthony Romano
632461cc50
Merge pull request #4706 from heyitsanthony/fix-client-close-deadlock
...
clientv3: don't deadlock on Close with broken connection
2016-03-07 14:02:12 -08:00
Anthony Romano
d21d2e6624
clientv3: don't deadlock on Close with broken connection
...
Fixes #4679
2016-03-07 13:46:54 -08:00
Xiang Li
036ed87c6d
*: support watch from future revision
2016-03-07 10:57:30 -08:00
Anthony Romano
a31f84121b
Merge pull request #4699 from heyitsanthony/fix-barrier
...
storage: use creation revision to compute txn event types
2016-03-05 19:17:56 -08:00
Anthony Romano
713f7c056f
storage: use creation revision to compute txn event types
...
Fixes #4688
2016-03-05 19:03:07 -08:00
Xiang Li
633a0bdf55
integration: add test for full range watching
2016-03-05 18:52:41 -08:00
Anthony Romano
360aafec76
clientv3: include a context in Client
...
Useful for clean up tasks
2016-03-04 09:20:44 -08:00
Xiang Li
44151ba531
integration: add TestV3PutOnNonExistLease
2016-03-03 20:32:44 -08:00
Xiang Li
b1521570b6
v3api: support progress
2016-03-03 13:58:15 -08:00
Anthony Romano
3327858a54
clientv3/concurrency: move election recipe into clientv3
2016-03-03 00:22:19 -08:00
Anthony Romano
8dbc6cfd43
etcdserver: ranges in watcher rpc protocol
...
protocol change so watch requests are ranges; server rejects non-prefix ranges
2016-02-29 14:03:27 -08:00
Anthony Romano
4fb25d5f0e
Merge pull request #4613 from heyitsanthony/clientv3-composite
...
clientv3: compose API interfaces into client struct
2016-02-29 11:23:34 -08:00
Gyu-Ho Lee
4a0a83380e
*: return -1 for canceled watch request
2016-02-26 14:26:46 -08:00
Anthony Romano
3e57bbf317
clientv3: use default client kv
2016-02-25 18:13:26 -08:00
Anthony Romano
5f62c05a6d
clientv3: compose all clientv3 APIs into client struct
2016-02-25 18:13:26 -08:00
Gyu-Ho Lee
8f3981c651
Merge pull request #4612 from gyuho/watch_not_panic
...
*: watch true cancel, created for wrong rev
2016-02-24 22:07:03 -07:00
Gyu-Ho Lee
a78604dacb
*: watch true cancel, created for wrong rev
...
This sets Created and Cancel true in pb.WatchResponse
when it has received wrong start revision instead of
panic. So that clientv3 can set 'Canceled' in WatchResponse
as well.
Fix https://github.com/coreos/etcd/issues/4610 .
2016-02-24 20:56:17 -08:00
Anthony Romano
d4b2044eb1
clientv3/concurrency: Mutex
2016-02-24 17:23:40 -08:00
Anthony Romano
20b4336cdb
clientv3/concurrency: Session
...
A client may bind itself to a session lease to signal its
continued in participation with the cluster.
2016-02-24 16:40:16 -08:00
Gyu-Ho Lee
fc86e1ded1
*: return the number of deleted keys
...
For https://github.com/coreos/etcd/issues/4576 .
2016-02-21 17:59:21 -08:00
Anthony Romano
3bb3351ca0
contrib/recipes: use clientv3 kv API
2016-02-21 14:43:41 -08:00
Anthony Romano
270fa00e54
integration: fix go vet -shadow error
...
breaking go tip
2016-02-18 12:26:35 -08:00
Anthony Romano
ef2d3feca6
Merge pull request #4528 from heyitsanthony/fix-watchcurrev
...
fix several watcher races
2016-02-17 14:26:33 -08:00
Anthony Romano
155412bbfa
integration: overlapped create and put v3 watcher test
2016-02-17 14:03:52 -08:00
Anthony Romano
019a145304
integration: put keys after watcher ack in TestV3WatchFromCurrentRevision
...
Watcher would miss events since the keys would be created after
sending the watcher request but before etcd registered the watcher.
2016-02-17 01:06:52 -08:00
Anthony Romano
0f7f375043
contrib/recipes: fix revision race in double barrier
...
current kv revision might be ahead of ready put event; watch using key's mod
revision instead.
Fixes #4425
2016-02-13 11:57:12 -08:00
Anthony Romano
6851fffdfb
clientv3: support >= Range requests
...
Turns out grpc will convert an empty byte string to nil, so use "\0" to
indicate Range on >= key in v3 grpc protocol.
2016-02-12 14:06:59 -08:00
Xiang Li
1d02559ae5
Merge pull request #4501 from xiang90/lt
...
integration: test switch lease via put
2016-02-12 13:20:05 -08:00
Xiang Li
be1534812a
integration: give watch stream a timeout to fail the test fast
2016-02-12 09:58:15 -08:00
Xiang Li
8ed9ebf3e1
integration: WaitResponse -> waitResponse
2016-02-12 09:50:29 -08:00
Xiang Li
5f1d30b76a
integration: move watch tests to v3_watch_test.go
2016-02-12 09:47:33 -08:00
Xiang Li
fa45e13073
integration: test switch lease via put
2016-02-11 22:04:54 -08:00
Anthony Romano
ed29bc3221
integration: add key usage to server.crt
...
curl handshake was failing; related: #209
2016-02-09 15:34:53 -08:00
Xiang Li
35567221a7
*: limit request size for v3
2016-02-08 12:54:03 -08:00
Anthony Romano
9523c2d29f
clientv3/integration: txn tests
2016-02-04 08:40:24 -08:00
Anthony Romano
16dcade07d
Merge pull request #4402 from heyitsanthony/minority-failure
...
rafthttp: add leader to transport if peer does not exist
2016-02-03 15:31:01 -08:00
Anthony Romano
db0b505de5
rafthttp: add requester to transport if peer does not exist
...
cluster integration now supports adding members with stopped nodes, too
Fixes #3699
2016-02-03 14:16:46 -08:00
Gyu-Ho Lee
2d197ac9e8
*: add kv Hash method (for testing purpose)
2016-02-03 12:52:39 -08:00
Xiang Li
cb30d6e6f8
Merge pull request #4393 from xiang90/fix_test
...
clientv3/integration: fix member remove
2016-02-02 21:10:40 -08:00
Xiang Li
c7876d4111
clientv3/integration: fix member remove
...
Do not connect to the member to remove.
2016-02-02 20:49:00 -08:00
Anthony Romano
2919be91b9
Merge pull request #4387 from heyitsanthony/integration-cluster-speedup
...
integration: decrease timeout for isMemberBootstrapped
2016-02-02 14:45:18 -08:00
Anthony Romano
9ae8d85049
integration: decrease timeout for isMemberBootstrapped
...
Spending seconds(!) when it would fail anyway.
integration/TestV3 (before): 100.670
integration/TestV3 (after): 29.571
2016-02-02 14:34:58 -08:00
Xiang Li
6f72b31316
integration: add test promote and move lease tests to lease_test.go
2016-02-02 13:45:11 -08:00
Anthony Romano
c5c5063efe
etcdserver: reject v3 txns with duplicate put keys
...
An API check to support PR #4363 ; bad requests didn't return an error.
2016-02-02 12:32:33 -08:00
Anthony Romano
b74a42b286
clientv3: support unix endpoints
2016-02-01 22:24:42 -08:00
Anthony Romano
64766e9d6a
Merge pull request #4366 from heyitsanthony/fix-rejectinsecure
...
integration: accept transient failure in TestGRPCRejectInsecureClient
2016-02-01 11:58:41 -08:00
Anthony Romano
7d8ae8af78
integration: accept transient failure state in TestGRPCRejectInsecureClient
2016-02-01 11:32:22 -08:00
Anthony Romano
20461ab11a
*: fix many typos
2016-01-31 21:42:39 -08:00
Gyu-Ho Lee
f6215574f2
*: kv range to return current revision
...
This changes the behavior of KV's range and tx range to return
current revision rather than range revision. This makes populating
range response header easier.
2016-01-30 17:37:34 -08:00
Anthony Romano
ca9bd575b1
integration: v3 grpc tls tests
2016-01-29 16:38:52 -08:00
Anthony Romano
60c037f1c3
integration: add client tls support
2016-01-29 16:38:11 -08:00
Anthony Romano
4634874d99
etcdmain, integration, v3rpc: consolidate grpc server setup
2016-01-29 16:38:11 -08:00
Shawn Smith
7abbd31fcd
integration: add want IDs to Errorf calls
2016-01-29 15:57:02 +09:00
Gyu-Ho Lee
1767788074
*: expose integration functions for clientv3
2016-01-28 21:21:34 -08:00
Gyu-Ho Lee
599ecebdec
integration: fix shadowed variables based on govet
2016-01-28 11:42:58 -08:00
Anthony Romano
6f0cc54541
contrib/recipes: add election and double barrier recipes
...
these recipes rely on leases so they weren't included in the last batch
2016-01-27 15:44:51 -08:00
Anthony Romano
56fce9f386
contrib/recipes, integration: use clientv3
...
updating both together since there's a circular dependency
2016-01-27 14:37:51 -08:00
Gyu-Ho Lee
51e62aa007
integration: update gRPC, proto interface
2016-01-26 17:41:27 -08:00
Xiang Li
59c6735c3c
Merge pull request #4282 from xiang90/range_invalid
...
etcdserver: check invalid range in txn
2016-01-25 22:23:55 -08:00
Xiang Li
c8bf77c722
v3rpc: check max ops in txn
2016-01-25 21:04:19 -08:00
Xiang Li
128b5e7387
etcdserver: check invalid range in txn
2016-01-25 20:21:17 -08:00
Gyu-Ho Lee
77cf05364d
Merge pull request #4261 from gyuho/racey_e2e
...
*: detect leaky goroutines, fix leaks
2016-01-24 18:17:49 -08:00
Gyu-Ho Lee
96d2ee20e3
*: detect leaky goroutines, fix leaks
...
gexpect.Interact leaks. This adds ReadLine method to wait for the leaky
goroutine to accept an EOF.
Fixes https://github.com/coreos/etcd/issues/4258 .
Reference: https://github.com/coreos/etcd/pull/4261#issuecomment-174198945 .
2016-01-23 13:52:41 -08:00
Anthony Romano
5099bf6f7a
Merge pull request #4269 from heyitsanthony/v3-reject-put-bogus-lease
...
etcdserver: return error when putting a key with a bad lease id
2016-01-22 21:25:17 -08:00
Anthony Romano
9572197aee
etcdserver: return error when putting a key with a bad lease id
2016-01-22 20:47:31 -08:00
Gyu-Ho Lee
5e4113374b
integration: minor govet shadow fix
2016-01-22 14:40:21 -08:00
Anthony Romano
6c240b4037
Merge pull request #4262 from heyitsanthony/v3-lease-watch-expire
...
storage: publish delete events on lease revocation
2016-01-22 14:09:19 -08:00
Anthony Romano
b07900ae03
contrib: v3 recipes
...
Concurrency recipes using the V3 API (sans leases).
2016-01-22 13:46:22 -08:00
Anthony Romano
5a967eb2a0
storage: publish delete events on lease revocation
2016-01-22 13:40:55 -08:00
Anthony Romano
2e157530a0
etcdhttp, lease, v3api: forward keepalives to leader
...
keepalives don't go through raft so let follower peers announce
keepalives to the leader through the peer http handler
2016-01-22 12:40:40 -08:00
Anthony Romano
9113a27bde
lease: grant consistent lease IDs
...
When raft broadcasts a Grant to all nodes, all nodes must
agree on the same lease ID. Otherwise, attaching a key to
a lease will fail since the lease ID is node-dependent.
2016-01-22 09:43:39 -08:00
Gyu-Ho Lee
835d824965
*: minor typos, kill TODOs
2016-01-20 16:21:39 -08:00
Gyu-Ho Lee
39116e2e20
integration: TestV3WatchMultipleEventsPutUnsynced
2016-01-20 15:31:13 -08:00
Gyu-Ho Lee
96f646c586
integration: add more tests for unsynced watch
...
For https://github.com/coreos/etcd/issues/4216 .
2016-01-20 12:13:58 -08:00
Gyu-Ho Lee
8c40232198
integration: cancel operation for unsynced watcher
...
Related https://github.com/coreos/etcd/issues/4216 .
2016-01-20 11:28:31 -08:00
Gyu-Ho Lee
12362d292d
integration: add TestV3WatchMultipleStreams
...
Related https://github.com/coreos/etcd/issues/4216 .
2016-01-19 14:27:14 -08:00
Gyu-Ho Lee
166055b443
integration: watch test for multi-events with txn
...
Related to https://github.com/coreos/etcd/issues/4216 .
2016-01-19 13:47:09 -08:00
Anthony Romano
7e0a5b8ed7
integration: fix race in WatchFromCurrentRevision
...
Since watching from current revision, keys should be put after the
watcher is registered or the test may time out. Shows up in CI.
2016-01-19 12:30:49 -08:00
Anthony Romano
05531b4600
integration: test v3 RangeRequest
2016-01-17 22:03:08 -08:00
Gyu-Ho Lee
f9b505ae56
integration: use WaitResponse for watch tests
2016-01-17 14:11:30 -08:00
Gyu-Ho Lee
0f3573a57e
integration: add TestV3WatchMultiple
...
For https://github.com/coreos/etcd/issues/4216 .
2016-01-16 20:23:45 -08:00
Gyu-Ho Lee
2535509811
integration: add TestV3WatchCancel
...
Related https://github.com/coreos/etcd/issues/4216 .
2016-01-15 17:16:12 -08:00
Anthony Romano
9aea99cd6e
integration: submit keys concurrently with watcher streaming
...
Tests for races between producer and consumer on watcher
2016-01-15 10:57:33 -08:00
Gyu-Ho Lee
2f2b408686
integration: test header revision in v3 grpc
...
Related https://github.com/coreos/etcd/issues/4216 .
2016-01-14 21:26:13 -08:00
Gyu-Ho Lee
d036ac85cb
integration: add WatchFromCurrentRevision test
2016-01-14 16:44:59 -08:00
Gyu-Ho Lee
b6077f9d57
*: fix minor typos
2016-01-14 01:28:29 -08:00
Anthony Romano
53186da0a9
integration: a few v3 grpc api tests
2016-01-13 14:24:27 -08:00
Anthony Romano
6949f052c4
integration: add support for grpc server and client
2016-01-13 14:20:26 -08:00
Anthony Romano
b47f721a98
integration: configure cluster with configCluster struct
...
makes discovery, tls, and v3 explicitly part of the cluster information
2016-01-13 11:09:13 -08:00
Jonathan Boulle
b126ff77fb
tests: only check for go1.5+ once
2015-12-20 19:51:53 +01:00
Jonathan Boulle
d50fbe384a
tests: ignore leaked readLoop on go <1.5
2015-12-20 19:51:06 +01:00
Jonathan Boulle
e1fe7350a2
tests: update + enable check for leaked goroutines
...
Go 1.4 landed a new testing.M type [1][1] which allows for start-up and
shutdown hooks when running tests. The standard library now uses this
for checking for leaked goroutines in net/http [2][2].
This patch essentially re-ports the updated code from the net/http test
(we were using an older version of it) - in detail:
- updates the test to use `TestMain` instead of relying on
`TestGoroutinesRunning` to be implicitly run after all other tests
- adds a few new goroutines to the list of exceptions (the test itself,
as well as the golang/glog package and pkg/log.MergeLogger, both of
which spin off goroutines to handle log flushing/merging respectively)
- removes a couple of TODOs in the test for extra goroutines that's run
after individual tests (one of these re-enables the http package's
`.readLoop` and the other was an out-of-date TODO)
- re-enables the test
[1]: https://golang.org/pkg/testing/#M
[2]: https://github.com/golang/go/blob/release-branch.go1.4/src/net/http/main_test.go#L18
2015-12-20 19:51:06 +01:00
Yicheng Qin
207c92b627
rafthttp: build transport inside pkg instead of passed-in
...
rafthttp has different requirements for connections created by the
transport for different usage, and this is hard to achieve when giving
one http.RoundTripper. Pass into pkg the data needed to build transport
now, and let rafthttp build its own transports.
2015-10-11 21:42:37 -07:00
Yicheng Qin
305a0d7ab9
integration: extend request timeout
...
Extend request timeout to give etcd cluster enough time to return
response.
2015-09-21 16:50:22 -07:00
Yicheng Qin
92cd24d5bd
*: fix govet shadow check failure
2015-08-27 14:15:30 -07:00
Yicheng Qin
3702be476b
integration: only print critical log
...
This limits the logs printed out in integration test, so it will not
have log flood and help us read fatal log in travis.
2015-08-23 21:22:21 -07:00
Xiang Li
6b23a8131f
*: test gofmt with -s and fix reported issues
2015-08-21 18:52:16 -07:00
Yicheng Qin
ffae601af5
etcdmain: calculate dial timeout for peer transport
...
This helps peer communication in globally-deployed cluster.
2015-08-17 16:52:53 -07:00
Xiang Li
a7b9bff939
store: add 0 as padding for better lexicographic sorting.
2015-08-13 13:42:37 -07:00
Yicheng Qin
c3d4d11402
etcdhttp: adjust request timeout based on config
...
It uses heartbeat interval and election timeout to estimate the
expected request timeout.
This PR helps etcd survive under high roundtrip-time environment,
e.g., globally-deployed cluster.
2015-08-12 09:22:59 -07:00
Yicheng Qin
e7ed7a7b7a
integration: always check error for function calls
2015-07-06 17:44:36 -07:00
Yicheng Qin
8e79fd85cb
integration: fix bind-addr-in-use
...
The bug happens when restarted member wants to listen on its original
port, but finds out that it has been occupied by some client.
Use well-known port instead of ephemeral port, so client cannot occupy
the listen port anymore.
2015-06-23 14:47:21 -07:00
Yicheng Qin
796d99c390
integration: fix TestIssue2904 when multiple cores
...
Do not wait for the cluster view of removed member to match with
expected view, since removed member does not apply entries after it is
removed.
2015-06-12 10:20:27 -07:00
Yicheng Qin
8725e69cf7
etcdserver: allow to update attributes of removed member
...
There exist the possiblity to update attributes of removed member in
reasonable workflow:
1. start member A
2. leader receives the proposal to remove member A
2. member A sends the proposal of update its attribute to the leader
3. leader commits the two proposals
So etcdserver should allow to update attributes of removed member.
2015-06-10 16:52:18 -07:00
Barak Michener
a88a53274f
security: Lazily create the security directories. Fixes #2755 , may find new instances for #2741
...
revert the kv integration test
fix nits
amend security mention of GUEST
2015-05-18 17:28:04 -04:00
Yicheng Qin
a6a649f1c3
etcdserver: stop exposing Cluster struct
...
After this PR, only cluster's interface Cluster is exposed, which makes
code much cleaner. And it avoids external packages to rely on cluster
struct in the future.
2015-05-13 10:01:25 -07:00
Yicheng Qin
032db5e396
*: extract types.Cluster from etcdserver.Cluster
...
The PR extracts types.Cluster from etcdserver.Cluster. types.Cluster
is used for flag parsing and etcdserver config.
There is no need to expose etcdserver.Cluster public, which contains
lots of etcdserver internal details and methods. This is the first step
for it.
2015-05-12 14:53:11 -07:00
Xiang Li
e866314b94
etcdserver: support update cluster version through raft
...
1. Persist the cluster version change through raft. When the member is restarted, it can recover
the previous known decided cluster version.
2. When there is a new leader, it is forced to do a version checking immediately. This helps to
update the first cluster version fast.
2015-05-12 11:44:34 -07:00
Xiang Li
077c8397d2
integration: add a test case for a full cluster rotation
2015-04-27 15:38:06 -07:00
Xiang Li
a42b9708ae
integration: add tests around the membership change issues
2015-04-24 13:07:43 -07:00
Yicheng Qin
ebecee34e0
Merge pull request #2701 from yichengq/rafthttp-anon
...
rafthttp: add remotes
2015-04-24 13:04:37 -07:00
Barak Michener
fa74e702d8
security: Improve the security api as per the suggestions list in #2384
...
Subcommits:
decouple root and security enable/disable
create root role
prefix matching
godep: bump go-etcd to include credentials
add godep for speakeasy and auth entry parsing
appropriate errors for security enable/disable
WIP adding to etcd/client all the security client methods
add guest access
minor ui return tweaks
revert client changes
respond to comments, log more security operations
fix major ensure() bug, add better UX
block recursive access
fix some boneheaded mistakes
fix integration test
last comments
fix up security_api.md
philips nits
fix docs
2015-04-23 16:11:38 -04:00
Yicheng Qin
1811701427
Revert "etcdserver: fix cluster fallback recovery"
...
This reverts commit cff005777a
.
Conflicts:
etcdserver/server.go
2015-04-19 11:34:33 -07:00
Yicheng Qin
73936d1874
integration: add TestDoubleTLSCluster
2015-04-02 10:08:40 -07:00
Yicheng Qin
ccb0934e22
integration: add TestTLSClusterUsingDiscovery
2015-04-02 00:01:39 -07:00
Yicheng Qin
d2efa2a615
integration: add TestTLSClusterOf3
2015-04-01 20:55:00 -07:00
Yicheng Qin
f3baf4517b
integration: fix upgrade test
...
Upgrade test listens on a fixed port, which may fail with 'bind address
already in use' if the port was just used to send tcp sockets.
The commit makes it listen on a random available port to avoid this.
2015-03-31 16:17:58 -07:00
Yicheng Qin
87e3de8b8b
integration: fix decrease cluster tests
2015-02-28 11:35:16 -08:00
Yicheng Qin
1c5a507761
rafthttp: refactor peer and add general stream
2015-02-28 11:35:16 -08:00
Yicheng Qin
2c94e2d771
*: make dial timeout configurable
...
Dial timeout is set shorter because
1. etcd is supposed to work in good environment, and the new value is long
enough
2. shorter dial timeout makes dial fail faster, which is good for
performance
2015-02-28 11:18:59 -08:00
Brian Waldon
cd85451971
client: clarify relationship of AfterIndex and waitIndex
2015-02-28 10:45:20 -08:00
Brian Waldon
1c03df62a5
client: WaitIndex -> AfterIndex
2015-02-28 10:38:46 -08:00
Brian Waldon
7255fb1b62
client: alias etcdserver/etcdhttp/httptypes.Member
2015-02-28 10:22:52 -08:00
Brian Waldon
3fdda06602
client: s/SyncableHTTPClient/Client/g
2015-02-28 10:22:51 -08:00
Brian Waldon
3b41b77cd7
client: ClientConfig -> Config
2015-02-28 10:22:51 -08:00
Brian Waldon
74fe28c5e0
client: exchange ClientConfig for SyncableHTTPClient
2015-02-28 10:22:50 -08:00
Brian Waldon
3d53e9bfaa
client: pass around options as pointers
2015-02-28 10:22:50 -08:00
Brian Waldon
01fc01ec69
client: KeysAPI.[R]Watch -> Watcher w/ opts struct
2015-02-28 10:19:04 -08:00
Brian Waldon
c6d955f4c1
client: drive Create with setAction; drop TTL
2015-02-28 10:12:35 -08:00
Yicheng Qin
cff005777a
etcdserver: fix cluster fallback recovery
...
Cluster and transport may recover to old states when new node joins
the cluster. Record cluster last modified index to avoid this.
2015-02-20 14:30:00 -08:00
Barak Michener
92dca0af0f
*: remove shadowing of variables from etcd and add travis test
...
We've been bitten by this enough times that I wrote a tool so that
it never happens again.
2015-02-17 16:31:42 -05:00
Xiang Li
163ea3f5c5
integration: wait for slow travis
2015-02-13 11:41:03 -08:00
Xiang Li
aed2c82e44
integration: fix test
2015-02-13 10:02:42 -08:00
Xiang Li
fbc4c8efb5
etcdserver: fix snapshot
2015-02-13 09:54:25 -08:00
Jonathan Boulle
f1ed69e883
*: switch to line comments for copyright
...
Build tags are not compatible with block comments.
Also adds copyright header to a few places it was missing.
2015-01-26 09:53:30 -08:00
Xiang Li
973f79e1c9
etcdserver: separate out raft related stuff
2015-01-15 15:15:13 -08:00
Xiang Li
1a6161d08a
Merge pull request #2104 from xiang90/timeout
...
etcdserver: make heartbeat/election configurable
2015-01-15 13:52:20 -08:00
Yicheng Qin
d380be8fa1
integration: fix TestForceNewCluster to wait leader
2015-01-15 13:27:24 -08:00
Xiang Li
276a4abac0
etcdserver: make heartbeat/election configurable
2015-01-15 11:11:33 -08:00
Yicheng Qin
68fdd70580
integration: fix TestForceNewCluster
2015-01-15 10:42:57 -08:00
Xiang Li
8e8552b2ad
integration: fix force cluster test
2015-01-14 16:40:09 -08:00
Xiang Li
1b9ccfc66f
Merge pull request #2084 from yichengq/294
...
integration: add TestForceNewCluster
2015-01-13 15:47:21 -08:00
Yicheng Qin
a318112c7a
integration: add TestForceNewCluster
2015-01-13 13:55:38 -08:00
Yicheng Qin
dc6aef0d02
etcdhttp: add NewPeerHandler test
2015-01-12 15:56:29 -08:00
Yicheng Qin
9132098960
integration: wait longer for member to be removed
2015-01-07 13:36:59 -08:00
Yicheng Qin
930156c18a
integration: adjust election ticks using env var
2015-01-07 11:18:29 -08:00
Yicheng Qin
66d9f28926
Merge pull request #2027 from yichengq/273
...
integration: extend timeout to wait
2015-01-05 08:33:35 -08:00
Yicheng Qin
b44d7f84c4
integration: extend timeout to wait
2015-01-02 16:28:27 -08:00
Xiang Li
152676f43a
*: support removing the leader from a 2 members cluster
2014-12-29 11:34:33 -08:00
Yicheng Qin
6d046d94d6
integration: improve member tests
2014-12-04 17:37:44 -08:00
Xiang Li
88e2fab572
Merge pull request #1859 from xiang90/pause_test
...
*: add pauseMember test
2014-12-04 15:11:59 -08:00
Yicheng Qin
ca32a5fe9b
Merge pull request #1860 from yichengq/249
...
integration: fix possible early fire in TestWatch
2014-12-04 14:48:39 -08:00
Yicheng Qin
356146b5a0
integration: fix possible early fire in TestWatch
2014-12-04 14:34:20 -08:00
Xiang Li
151f043414
*: add pauseMember test
2014-12-04 14:22:43 -08:00
Yicheng Qin
719a634fdc
integration: not check whether readloop goroutines exist
...
Readloop goroutines may be left from time to time. Skip the check for now,
and will dig into it when we have time.
2014-12-04 00:51:31 -08:00
Yicheng Qin
7a1d147795
integration: use timeout transport when launching cluster
...
This makes it do the same behavior as etcdmain does.
2014-12-01 16:26:27 -08:00
Yicheng Qin
670d98ec72
integration: attempt more times to listen on specified port
...
Travis is rather slow, and it may fail to listen on that port sometimes.
2014-11-26 14:21:15 -08:00
Brian Waldon
c0fb1c8a00
Merge pull request #1755 from bcwaldon/golang.org-deps
...
Switch to golang.org/x/net/context
2014-11-20 16:26:14 -08:00
Barak Michener
2d5ccf12ef
add snapshotted integration test
2014-11-20 15:38:08 -05:00
Yicheng Qin
9d53b94546
rafthttp: add streaming server and client
2014-11-20 11:34:50 -08:00
Brian Waldon
9a728a127a
dep: bump golang.org/x/net/context
...
Move from code.google.com/p/go.net/context to
golang.org/x/net/context before bumping to latest.
2014-11-20 10:19:12 -08:00
Xiang Li
c26de66262
integration: add integration test for remove member
2014-11-17 13:28:09 -08:00
Xiang Li
800747e1cf
integration: add test for member restart
2014-11-17 11:28:18 -08:00
Yicheng Qin
ac907d746b
etcdserver: validate new node is not registered before in best effort
2014-11-13 13:56:11 -08:00
Yicheng Qin
1e1535e6f9
Merge pull request #1620 from yichengq/204
...
etcdserver: not record attributes when add member
2014-11-12 21:33:53 -08:00
Yicheng Qin
0c2b45ddc6
etcdserver: not record attributes when add member
...
There is no need to set attributes value when adding member because new
member will publish the information whenever it starts.
2014-11-12 17:48:15 -08:00
Yicheng Qin
bc9de47a9a
integration: add increase cluster size test
2014-11-12 14:33:18 -08:00
Jonathan Boulle
5cef3d888a
integration: remove unnecessary t.Testing argument
2014-11-12 14:11:56 -08:00
Jonathan Boulle
d1ae276434
integration: fix test to propagate NewServer errors
2014-11-12 13:12:49 -08:00
Yicheng Qin
24edf57e12
integration: newMember -> mustNewMember
2014-11-10 16:53:15 -08:00
Yicheng Qin
b1c3c4a202
integration: rewrite the way to check cluster make progress
2014-11-10 16:53:07 -08:00
Yicheng Qin
5396037450
integration: add basic discovery tests
2014-11-10 10:04:30 -08:00
Yicheng Qin
071ebb9feb
integration: wait cluster to be stable before return launch
...
The wait ensures that cluster goes into the stable stage, which means that
leader has been elected and starts to heartbeat to followers.
This makes future client requests always handled in time, and there is no
need to retry sending requests.
2014-11-08 15:39:10 -08:00
Yicheng Qin
85a4477f71
integration: use client to do requests
2014-11-07 13:34:30 -08:00
Yicheng Qin
c3b0de943c
etcdserver: discard messages if sender reaches max serving
...
It is the correct thing to do to ensure that the communication is full
of out-of-date messages.
It results in that integration testing is very easy to throw MsgProp away,
and makes client wait until 5 min timeout. Sync interval and heartbeat are
increased to alleviate the traffic.
2014-11-06 14:04:14 -08:00
Jonathan Boulle
04f6208ace
etcdmain: use StringsFlag for initialclusterstate
2014-11-06 11:13:24 -08:00
Jonathan Boulle
d36f09d643
Merge pull request #1602 from jonboulle/bump_timeout
...
integration: bump timeout for good path
2014-11-04 16:52:44 -08:00
Xiang Li
5cb13fd071
*: support discovery fallback
2014-11-04 14:30:22 -08:00
Jonathan Boulle
9f29545f66
integration: bump timeout for good path
...
When waiting for a watch result, we expect the good path to complete
quickly here so we don't need to time out so aggressively. (Failure
noted in #1600 )
2014-11-04 12:55:40 -08:00
Yicheng Qin
866ec5948c
etcdhttp/etcdserver: support HEAD on /v2/keys/ namespace
2014-11-04 00:06:49 -08:00
Jonathan Boulle
63cf0b9d90
integration: add keys API integration tests
2014-11-03 16:30:29 -08:00
Jonathan Boulle
34b2fecd28
integration: clean up licenses and docs
2014-10-31 14:33:56 -07:00
Yicheng Qin
e21de51768
etcdserver: remove NewClusterFromMemberInfos
2014-10-23 13:27:55 -07:00
Yicheng Qin
89572b5fd7
etcdserver: refactor cluster and clusterStore
...
Integrate clusterStore into cluster, and let cluster become the source of
cluster info.
2014-10-23 13:27:54 -07:00
Barak Michener
e42d65da12
etcdserver: Check the initial cluster settings after checking if the WAL exists
2014-10-22 18:16:43 -04:00
Barak Michener
13656eb4e7
Merge pull request #1340 from barakmich/better_ids2
...
etcdserver: Calculate IDs based on PeerURLs and --initial-cluster-name
2014-10-22 14:49:49 -04:00
Barak Michener
829cec8ccf
Merge stylistic comments
2014-10-22 14:26:05 -04:00
Barak Michener
502a3c2460
Refactor Cluster to hold and add members.
2014-10-22 13:52:42 -04:00
Barak Michener
ad0b7b7dbb
Add cluster name to etcd flags
2014-10-22 13:52:42 -04:00
Barak Michener
1ca7c031ff
first round of comments
...
Conflicts:
etcdserver/config.go
etcdserver/config_test.go
etcdserver/server.go
main.go
2014-10-22 13:49:54 -04:00
Barak Michener
456d1ebcae
etcdserver: Calculate IDs for nodes solely on PeerURLs
...
Removes the notion of name being anything more than advisory or
command-line grouping, and adds checks for bootstrapping the command
line. IDs are consistent if the URLs are consistent.
2014-10-22 13:49:54 -04:00
Yicheng Qin
4f52d371c1
integration: skip TestGoroutinesRunning
2014-10-22 10:10:43 -07:00
Yicheng Qin
f356648252
integration: add remaining goroutine check
2014-10-21 16:59:14 -07:00
Yicheng Qin
ef44ba10cf
integration: add doc
2014-10-20 14:43:21 -07:00
Yicheng Qin
80212aaf4d
integration: retry on setKey to avoid timeout due to bootstrap
2014-10-20 14:43:21 -07:00
Yicheng Qin
500a72962e
integration: clean code
...
remove extra space, rename variables, remove unused function.
2014-10-20 14:43:21 -07:00
Yicheng Qin
7af679333a
integration: log microsecond time for integration tests
2014-10-20 14:43:21 -07:00
Yicheng Qin
1b7947357f
*: pkg functional -> integration
2014-10-20 14:43:21 -07:00