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